<div class="control-buttons">
<div class="control-btn" id="menu-fullscreen-btn" title="Toggle Fullscreen">⛶</div>
</div>
<<script>>
$(document).ready(function() {
$('#menu-fullscreen-btn').on('click', function(e) {
e.preventDefault();
e.stopPropagation();
console.log('Menu fullscreen button clicked'); // Debug
try {
if (document.fullscreenElement) {
console.log('Exiting fullscreen'); // Debug
document.exitFullscreen();
} else {
console.log('Entering fullscreen'); // Debug
document.documentElement.requestFullscreen();
}
} catch (error) {
console.error('Fullscreen error:', error);
}
});
// Update fullscreen button icon on fullscreen change
$(document).on('fullscreenchange', function() {
console.log('Fullscreen state changed:', document.fullscreenElement ? 'ON' : 'OFF'); // Debug
// Aquí puedes cambiar el icono del botón si quieres
// $('#menu-fullscreen-btn').text(document.fullscreenElement ? '⛶' : '⛶');
});
});
<</script>>
<style>
.control-buttons {
position: fixed;
top: 0px;
left: 15px;
display: flex;
flex-direction: column;
gap: 1px;
z-index: 100000000 !important;
}
.control-btn {
width: 25px;
height: 25px;
background: rgba(20, 20, 20, 0.8);
border: 2px solid #d9c27e;
border-radius: 8px;
display: flex;
justify-content: center;
align-items: center;
font-size: 12px;
color: #d9c27e;
cursor: pointer;
transition: all 0.3s ease;
user-select: none;
box-shadow: 0 0 10px rgba(217, 194, 126, 0.2);
}
.control-btn:hover {
background: rgba(40, 40, 40, 0.9);
box-shadow: 0 0 15px rgba(217, 194, 126, 0.4);
transform: scale(1.05);
}
.control-btn:active {
transform: scale(0.95);
}
@media screen and (max-width: 768px) {
.control-btn {
width: 22px;
height: 22px;
font-size: 10px;
}
.control-buttons {
top: -18px;
left: 9px;
gap: 0px;
}
}
@media screen and (max-width: 768px) {
.control-btn {
width: 22px;
height: 22px;
font-size: 10px;
}
.control-buttons {
top: -18px;
left: 9px;
gap: 0px;
}
}
@media screen and (max-width: 480px) {
.control-btn {
width: 20px;
height: 20px;
font-size: 9px;
}
.control-buttons {
top: -20px;
left: 10px;
gap: 0px;
}
}
#disclaimer-container {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
z-index: 999999;
}
#disclaimer-box {
background: linear-gradient(135deg, rgba(20, 20, 20, 0.95), rgba(40, 40, 40, 0.95));
color: #d9c27e;
padding: 30px;
border: 2px solid #d9c27e;
border-radius: 10px;
text-align: center;
max-width: 90vw;
max-height: 80vh;
box-shadow: 0 0 30px rgba(217, 194, 126, 0.3);
overflow-y: auto;
box-sizing: border-box;
display: flex;
flex-direction: column;
}
#disclaimer-box h1 {
font-family: 'personal-services', 'Arial', sans-serif;
color: #d9c27e !important;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
margin: 0 0 20px 0;
font-size: clamp(1.6rem, 4vw, 2.2rem);
font-weight: 900;
letter-spacing: 0.1em;
flex-shrink: 0;
}
.disclaimer-text {
color: white !important;
line-height: 1.6;
margin: 0 0 25px 0;
font-size: clamp(0.9rem, 2.5vw, 1.1rem);
flex-grow: 1;
overflow-y: auto;
}
.disclaimer-button {
margin-top: 20px;
flex-shrink: 0;
position: sticky;
bottom: 0;
background: linear-gradient(135deg, rgba(20, 20, 20, 0.95), rgba(40, 40, 40, 0.95));
padding: 10px 0 0 0;
}
#disclaimer-container .disclaimer-button a,
#disclaimer-container .disclaimer-button a:link,
#disclaimer-container .disclaimer-button a:visited,
.disclaimer-button a[data-passage],
body .disclaimer-button a {
display: inline-block !important;
font-family: 'personal-services', 'Arial', sans-serif !important;
padding: 12px 25px !important;
background: none !important;
background-color: transparent !important;
border: none !important;
border-radius: 0 !important;
color: #d9c27e !important;
text-decoration: none !important;
font-size: clamp(1.2rem, 3vw, 1.6rem) !important;
font-weight: 900 !important;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8) !important;
box-shadow: none !important;
transition: all 0.3s ease !important;
cursor: pointer !important;
text-transform: uppercase !important;
letter-spacing: 0.1em !important;
margin: 0 !important;
outline: none !important;
transform: translate(0px, -10px) !important;
}
#disclaimer-container .disclaimer-button a:hover {
color: #E6D3A3 !important;
background: none !important;
background-color: transparent !important;
box-shadow: none !important;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8) !important;
transform: none !important;
border: none !important;
transform: translate(0px, -15px) !important;
}
#disclaimer-container .disclaimer-button a:focus,
#disclaimer-container .disclaimer-button a:active {
background: none !important;
background-color: transparent !important;
border: none !important;
outline: none !important;
}
/* Mobile optimizations */
@media (max-width: 768px) {
#disclaimer-box {
padding: 15px;
max-width: 95vw;
margin: 10px;
max-height: 85vh;
}
#disclaimer-box h1 {
font-size: clamp(1.3rem, 4.5vw, 1.7rem);
margin-bottom: 12px;
}
.disclaimer-text {
font-size: clamp(0.8rem, 2.2vw, 0.95rem);
line-height: 1.4;
margin-bottom: -15px;
}
.disclaimer-button {
margin-top: 15px;
padding: 8px 0 0 0;
}
#disclaimer-container .disclaimer-button a {
padding: 8px 20px !important;
font-size: clamp(1rem, 3.5vw, 1.3rem) !important;
}
}
@media (max-width: 480px) {
#disclaimer-box {
padding: 12px;
max-height: 90vh;
}
#disclaimer-box h1 {
font-size: clamp(1.1rem, 4vw, 1.4rem);
margin-bottom: 10px;
}
.disclaimer-text {
font-size: clamp(0.75rem, 2vw, 0.85rem);
margin-bottom: -45px;
}
.disclaimer-button {
margin-top: 12px;
padding: 6px 0 0 0;
}
#disclaimer-container .disclaimer-button a {
font-size: clamp(0.9rem, 3.2vw, 1.1rem) !important;
padding: 6px 15px !important;
}
}
/* Very small screens - ensure button is always visible */
@media (max-height: 600px) {
#disclaimer-box {
max-height: 95vh;
padding: 10px;
}
#disclaimer-box h1 {
margin-bottom: 8px;
}
.disclaimer-text {
margin-bottom: -90px;
transform: translate(0px, -22px);
}
.disclaimer-button {
margin-top: 10px;
transform: translate(0px, 15px);
background: transparent;
height: 10vw;
}
}
@font-face {
font-family: 'personal-services';
src: url('path/to/personal-services.woff2') format('woff2'),
url('path/to/personal-services.woff') format('woff');
font-weight: normal;
font-style: normal;
}
</style>
<div id="disclaimer-container">
<div id="disclaimer-box">
<h1>⚠️ IMPORTANT⚠️</h1>
<p class="disclaimer-text">This game is intended for audiences <span style="color: #ff6666;">18 years and older</span>. It contains explicit
content, including depictions of sexual themes, violence, and other sensitive or potentially disturbing material.</p>
<div class="disclaimer-button">
[[ACCEPT & PLAY|StartGame]]
</div>
</div>
</div>
<<script>>
window.setLighting(100);
<</script>> <<script>>
let questId = addQuestWithStages(
"The captain",
"Back at the station",
[
"The captain has summoned you. Head to his office at the station.",
"Speak with Captain Havook. This might be more than just a routine check-in."
],
"📋",
"main",
"captain_quest", // Custom ID
"img/quest.png" // Quest image
);
// Add stage images so completion notifications show the quest image
if (window.questSystem && window.questSystem.quests["captain_quest"]) {
window.questSystem.quests["captain_quest"].stageImages = [
"img/quest.png", // Stage 1
"img/quest.png" // Stage 2
];
}
State.variables.captainQuestId = "captain_quest";
<</script>><<createMenu>>
<<hideMenuElement "phone-btn">>
<<hideMenuElement "inventory-btn">>
<<hideMenuElement "shop-btn">>
<<script>>
UIAnimations.showLantern();
<</script>>
<<script>>
expandInventoryBy5()
<</script>>
<<script>>
hideCharacterMenu();
<</script>><<showMenuElement "phone-btn">>
<<showMenuElement "inventory-btn">>
<<showMenuElement "shop-btn">>
<<toggleMenuElement "lantern-row">><<showNPC "bruno" "img/characters/bruno/bruno.png" "Bruno">><<dialogue "Dr. Morrison" "Detective Casey, thank goodness you're here!" "talk">>
<<addDialogue "Casey" "What exactly happened, Doctor?" "talk">>
<<addDialogue "" "The doctor's coat is stained with something dark." "description">>
<<addDialogue "Dr. Morrison" "The patients... they started acting strange." "talk">>
<<addDialogue "" "I have a bad feeling about this place." "thoughts">>
<<addDialogue "Casey" "Any survivors?" "talk">>
<<timed 100ms>>
<<vdialogue "Gabriela Rodriguez" "$McName, when I saw you enter, I thought you weren't going to talk to me..." "talk">>
<</timed>><<unlockCharacterOnly 1>> <<unlockPhoto 1 5>>
<<unlockVideo 1 2>> <<script>>
completeQuestStage("medical_mystery");
<</script>> <<script>>
window.addDocumentWithNotification(
"lab_report",
"Laboratory Report",
"Chemical analysis results",
`Blood samples show unknown contamination.
Further testing required.
- Dr. Smith, Chief Medical Officer`,
"medical",
"🧪"
);
<</script>>
<<script>>
window.addDocumentWithNotification(
"resignation_form",
"Resignation Form",
"The last document you take from NVPD",
"",
"close_photo",
"📋",
{
imagePath: "img/documents/rf.png",
location: "New Veris Police Department",
photographer: "Captain Havook",
frontDescription: `A pre-established resignation form from the New Veris Police Department.`
}
);
<</script>> <!-- Medical items -->
<<script>>window.addItemFromDatabase('medkit', 1);<</script>>
<<script>>window.addItemFromDatabase('bandages', 3);<</script>>
<<script>>window.addItemFromDatabase('stim', 2);<</script>>
<<script>>window.addItemFromDatabase('pills', 5);<</script>>
<<script>>window.addItemFromDatabase('antidep', 3);<</script>>
<<script>>window.addItemFromDatabase('antibio', 3);<</script>>
<<addItem "battery" 5>>
<<addItem "medium_battery" 3>>
<<addItem "duracell_battery" 1>>
<!-- Weapons -->
<<script>>window.addItemFromDatabase('desert_eagle', 1);<</script>>
<<script>>window.addItemFromDatabase('magnum_ammo', 30);<</script>>
<<script>>window.addItemFromDatabase('revolver_357', 1);<</script>>
<<script>>window.addItemFromDatabase('pistol', 1);<</script>>
<<script>>window.addItemFromDatabase('rifle', 1);<</script>>
<<script>>window.addItemFromDatabase('shotgun', 1);<</script>>
<<script>>window.addItemFromDatabase('pistol_ammo', 24);<</script>>
<<script>>window.addItemFromDatabase('pistol_ammo_expansive', 12);<</script>>
<<script>>window.addItemFromDatabase('pistol_ammo_incendiary', 6);<</script>>
<<script>>window.addItemFromDatabase('magnum_ammo', 18);<</script>>
<!-- Rifle ammo -->
<<script>>window.addItemFromDatabase('rifle_ammo', 30);<</script>>
<<script>>window.addItemFromDatabase('rifle_ammo_armor', 15);<</script>>
<<script>>window.addItemFromDatabase('rifle_ammo_tracer', 20);<</script>>
<!-- Shotgun ammo -->
<<script>>window.addItemFromDatabase('shotgun_shells', 12);<</script>>
<<script>>window.addItemFromDatabase('shotgun_slug', 8);<</script>>
<<script>>window.addItemFromDatabase('shotgun_dragon', 6);<</script>>
<!-- SMG ammo -->
<<script>>window.addItemFromDatabase('smg_ammo', 50);<</script>>
<<script>>window.addItemFromDatabase('smg_ammo_incendiary', 30);<</script>>
<!-- Weapon upgrades -->
<<script>>window.addItemFromDatabase('scope', 1);<</script>>
<<script>>window.addItemFromDatabase('silencer', 1);<</script>>
<<script>>window.addItemFromDatabase('pistol_laser_sight', 1);<</script>>
<<script>>window.addItemFromDatabase('flashlight', 1);<</script>>
<<script>>window.addItemFromDatabase('grip', 1);<</script>>
<<script>>window.addItemFromDatabase('stock', 1);<</script>>
<<script>>window.addItemFromDatabase('barrel', 1);<</script>>
<<script>>window.addItemFromDatabase('compensator', 1);<</script>>
remove
<<script>>
window.gameState.inventory.quickbar.fill(null);
window.InventorySystem.updateDisplay();
<</script>>
<<script>>
window.gameState.inventory.main.fill(null);
<</script>>
<<script>>
window.gameState.inventory.main[5] = null;
<</script>> <<script>>
window.addItemFromDatabase('pistol', 1);
if (window.ItemNotificationSystem) {
window.ItemNotificationSystem.show('pistol', 1, 'Found in desk drawer');
}
<</script>>
<<addMoney 500>>
<!-- Add $250 with custom message -->
<<addMoney 250 "Found in wallet">> <<script>>
window.startSimpleBattle('normalWolf', 100, 'VictoryPassage');
<</script>><<run startAdvancedBattle([
{
type: 'nightmareShade',
hp: 150,
distance: 250,
randomDistance: true,
minMovement: 15,
maxMovement: 45,
sanityDamage: 22,
DamageIgnore: {
'pistol': 0.7,
'rifle': 0.6,
'shotgun': 0.8,
'melee': 0.5,
'incendiary': 0.1,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.8,
'.45': 0.7,
'slugs': 0.9
}
},
{
type: 'nightmareShade',
hp: 120,
distance: 180,
randomDistance: true,
minMovement: 10,
maxMovement: 35,
sanityDamage: 18,
DamageIgnore: {
'pistol': 0.6,
'rifle': 0.5,
'shotgun': 0.7,
'melee': 0.4,
'incendiary': 0.0,
'piercing': 0.3,
'dragon_breath': 0.1
}
}
], 'VictoryPassage', false, 'fled_from_nightmare', true)>><<setAvatarDirect "casey2.png">>
<<if window.ClothingSystem.currentClothes === 'jacket'>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<elseif window.ClothingSystem.currentClothes === 'coat'>>
<<setAvatarDirect "caseycoatpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<script>>
setBackgroundMusic('outsidetheme.mp3');
<</script>>
Change music with fade:
<<script>>
setTimeout(() => {
audioSystemCrossfade('pianosonata.mp3', 4000);
}, 1000);
<</script>>
<<script>>
stopAllMusic();
stopAllAudio('music');
window.emergencyAudio.muteAll();
<</script>><<script>>
playSoundDirect('windowcrash.mp3');
<</script>>
<<createAdvancedEvent "LowHealthWarning" 20 "<" "passage" "HealthWarningPassage" true "health">>
Parameters:
- "LowHealthWarning" - Event name
- 20 - Health threshold value
- "<" - Health operator (triggers when health < 20)
- "passage" - Action type (navigate to passage)
- "HealthWarningPassage" - Target passage name
- true - Single launch (triggers only once)
- "health" - Event type (health-based event)
2) Health event when health and some variable there:
<<createAdvancedEvent "HealthAndVariable" 15 "<" "passage" "CombinedEventPassage" true "health" "SomeVariable"
1>>
Parameters:
- "HealthAndVariable" - Event name
- 15 - Health threshold value
- "<" - Health operator (triggers when health < 15)
- "passage" - Action type
- "CombinedEventPassage" - Target passage name
- true - Single launch
- "health" - Event type
- "SomeVariable" - Variable name to check
- 1 - Variable value required (SomeVariable must equal 1)
3) The same as second + location:
<<createAdvancedEvent "HealthVariableLocation" 15 "<" "passage" "LocationEventPassage" true "health"
"LocationVariable" 1>>
Parameters:
- "HealthVariableLocation" - Event name
- 15 - Health threshold value
- "<" - Health operator (triggers when health < 15)
- "passage" - Action type
- "LocationEventPassage" - Target passage name
- true - Single launch
- "health" - Event type
- "LocationVariable" - Location variable name to check
- 1 - Location variable value required (LocationVariable must equal 1)
4) Sanity below certain level and repeatable:
<<createAdvancedEvent "SanityStress" 30 "<" "passage" "SanityEventPassage" false "sanity">>
Parameters:
- "SanityStress" - Event name
- 30 - Sanity threshold value
- "<" - Sanity operator (triggers when sanity < 30)
- "passage" - Action type
- "SanityEventPassage" - Target passage name
- false - Repeatable (can trigger multiple times)
- "sanity" - Event type (sanity-based event)
5) Health and sanity at certain level with some variables (few):
<<createComplexEvent "CriticalState" 10 "<" 15 "<" "passage" "CriticalEventPassage" true "CriticalReady" 1
"LocationOK" 1 "PlayerAwake" 1>>
Parameters:
- "CriticalState" - Event name
- 10 - Health threshold value
- "<" - Health operator (triggers when health < 10)
- 15 - Sanity threshold value
- "<" - Sanity operator (triggers when sanity < 15)
- "passage" - Action type
- "CriticalEventPassage" - Target passage name
- true - Single launch
- "CriticalReady" - First variable name to check
- 1 - First variable value required (CriticalReady must equal 1)
- "LocationOK" - Second variable name to check
- 1 - Second variable value required (LocationOK must equal 1)
- "PlayerAwake" - Third variable name to check
- 1 - Third variable value required (PlayerAwake must equal 1) Get lockpicks
<<script>>
window.giveLockpicks(5)
<</script>>
<<script>>
window.testLockpicking(5);
<</script>><div id="intro-overlay">
<div id="intro-message">Rustlerman Games</div>
</div>
<div class="titles">
<div class="title"></div>
<div id="title1"></div>
</div>
<div class="main-menu">
<div class="main-menu-btn" id="save-button">CONTINUE</div>
<div class="main-menu-btn" id="new-game-button">NEW STORY</div>
<div class="main-menu-btn" id="credits-button">CREDITS</div>
</div>
<!-- Control Buttons -->
<div class="control-buttons">
<div class="control-btn" id="menu-fullscreen-btn" title="Toggle Fullscreen">⛶</div>
<div class="control-btn" id="menu-audio-btn" title="Audio Controls">🔊</div>
</div>
<!-- Credits Popup -->
<div id="credits-popup" style="display: none;">
<div id="credits-content">
<div id="credits-title">CREDITS</div>
<div id="credits-names">
<div class="credit-entry">
<div class="credit-role">Game Designer, Screenwriter, Creator</div>
<div class="credit-name">Rustlerman</div>
</div>
<div class="credit-entry">
<div class="credit-role">Programmer</div>
<div class="credit-name">Korum</div>
</div>
</div>
<div id="credits-close" class="main-menu-btn">CLOSE</div>
</div>
</div>
<<script>>
setBackgroundMusic('soundtrack1.mp3');
<</script>>
<<timed 1s>>
<<script>>
const slideshowContainer = document.createElement('div');
slideshowContainer.id = 'menu-slideshow-bg';
slideshowContainer.style.cssText = `
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
`;
document.body.appendChild(slideshowContainer);
const myThreePics = [
'img/backgrounds/intromenu.png',
'img/backgrounds/parking.png',
'img/backgrounds/lake.png',
'img/backgrounds/intromenu2.png',
'img/backgrounds/intromenu3.png',
'img/backgrounds/intromenu4.png',
'img/backgrounds/intromenu5.png',
];
if (window.SlideshowSystem) {
window.SlideshowSystem.stop('my-slideshow');
}
window.SlideshowSystem.create('my-slideshow', myThreePics, {
interval: 10000,
loop: true,
fadeTransition: true,
fadeDuration: 1200,
autoStart: true,
target: '#menu-slideshow-bg'
});
<</script>>
<</timed>>
<<set $startgame = true>>
<<script>>
$(document).ready(function() {
$('#save-button').on('click', function() {
try {
UI.saves();
} catch (error) {
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
$('#new-game-button').on('click', function() {
Engine.play('introA');
});
$('#credits-button').on('click', function() {
$('#credits-popup').fadeIn(300);
});
$('#credits-close').on('click', function() {
$('#credits-popup').fadeOut(300);
});
// Close popup when clicking outside
$('#credits-popup').on('click', function(e) {
if (e.target === this) {
$('#credits-popup').fadeOut(300);
}
});
// Fullscreen control with different ID to avoid conflicts
$('#menu-fullscreen-btn').on('click', function(e) {
e.preventDefault();
e.stopPropagation();
console.log('Menu fullscreen button clicked'); // Debug
try {
if (document.fullscreenElement) {
console.log('Exiting fullscreen'); // Debug
document.exitFullscreen();
} else {
console.log('Entering fullscreen'); // Debug
document.documentElement.requestFullscreen();
}
} catch (error) {
console.error('Fullscreen error:', error);
}
});
// Audio control with different ID to avoid conflicts
$('#menu-audio-btn').on('click', function(e) {
e.preventDefault();
e.stopPropagation();
console.log('Menu audio button clicked'); // Debug
if (window.AudioSettingsSystem && typeof window.AudioSettingsSystem.openAudioSettings === 'function')
{
console.log('Calling AudioSettingsSystem.openAudioSettings'); // Debug
window.AudioSettingsSystem.openAudioSettings();
} else if (window.openAudioSettings && typeof window.openAudioSettings === 'function') {
console.log('Calling window.openAudioSettings'); // Debug
window.openAudioSettings();
} else {
console.log('No audio settings system found, using fallback'); // Debug
// Fallback if AudioSettingsSystem not available
if (window.audioEnabled !== false) {
window.audioEnabled = false;
if (window.backgroundMusic) {
window.backgroundMusic.volume = 0;
}
$(this).text('🔇');
$(this).attr('title', 'Enable Audio');
} else {
window.audioEnabled = true;
if (window.backgroundMusic) {
window.backgroundMusic.volume = window.musicVolume || 0.5;
}
$(this).text('🔊');
$(this).attr('title', 'Disable Audio');
}
}
});
// Update fullscreen button icon on fullscreen change
$(document).on('fullscreenchange', function() {
console.log('Fullscreen state changed:', document.fullscreenElement ? 'ON' : 'OFF'); // Debug
// Icon stays the same (⛶) regardless of fullscreen state
});
});
<</script>>
<style>
#intro-overlay {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background-color: black;
display: flex;
justify-content: center;
align-items: center;
z-index: 9999;
opacity: 1;
animation: fadeOut 1s ease forwards;
animation-delay: 4.35s;
}
#intro-message {
font-family: 'Times New Roman', serif;
color: #e5e5e5;
font-weight: bold;
font-size: 4vw;
text-align: center;
letter-spacing: 0.08em;
text-shadow:
0 0 8px rgba(255, 255, 255, 0.3),
2px 2px 6px rgba(0, 0, 0, 0.9),
-2px -2px 6px rgba(0, 0, 0, 0.9);
opacity: 0;
animation:
fadeZoomIn 1s ease forwards 0.3s,
fadeOutText 1s ease forwards 4.1s;
transform: translate(0px, 20px);
}
/* Control Buttons */
.control-buttons {
position: fixed;
top: 0px;
left: 15px;
display: flex;
flex-direction: column;
gap: 1px;
z-index: 99999;
}
.control-btn {
width: 25px;
height: 25px;
background: rgba(20, 20, 20, 0.8);
border: 2px solid #d9c27e;
border-radius: 8px;
display: flex;
justify-content: center;
align-items: center;
font-size: 12px;
color: #d9c27e;
cursor: pointer;
transition: all 0.3s ease;
user-select: none;
box-shadow: 0 0 10px rgba(217, 194, 126, 0.2);
}
.control-btn:hover {
background: rgba(40, 40, 40, 0.9);
box-shadow: 0 0 15px rgba(217, 194, 126, 0.4);
transform: scale(1.05);
}
.control-btn:active {
transform: scale(0.95);
}
/* Credits Popup */
#credits-popup {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background-color: rgba(0, 0, 0, 0.8);
display: flex;
justify-content: center;
align-items: center;
z-index: 10000;
}
#credits-content {
background: linear-gradient(135deg, rgba(20, 20, 20, 0.95), rgba(40, 40, 40, 0.95));
border: 2px solid #d9c27e;
border-radius: 10px;
padding: 1.2rem 1rem;
text-align: center;
box-shadow: 0 0 30px rgba(217, 194, 126, 0.3);
max-height: 90vh;
max-width: 400px;
width: 85%;
display: flex;
flex-direction: column;
justify-content: center;
overflow-y: auto;
}
#credits-title {
font-family: 'personal-services', 'Arial', sans-serif;
font-size: clamp(1.6rem, 4vw, 2.2rem);
color: #d9c27e;
font-weight: 900;
margin-bottom: 0.6rem;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
letter-spacing: 0.1em;
}
#credits-names {
margin: 0.6rem 0;
flex-grow: 1;
display: flex;
flex-direction: column;
justify-content: center;
}
.credit-entry {
margin: 0;
}
.credit-role {
font-family: 'personal-services', 'Arial', sans-serif;
font-size: clamp(0.85rem, 2vw, 1.1rem);
color: #B8A876;
font-weight: 400;
margin-bottom: 0.05rem;
text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.8);
letter-spacing: 0.03em;
font-style: italic;
}
.credit-name {
font-family: 'personal-services', 'Arial', sans-serif;
font-size: clamp(1.1rem, 2.8vw, 1.6rem);
color: #E6D3A3;
font-weight: 700;
margin: 0.1rem 0 0.4rem 0;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
letter-spacing: 0.05em;
}
#credits-close {
margin-top: 0.8rem !important;
cursor: pointer;
font-size: clamp(1.4rem, 3.5vw, 1.8rem) !important;
flex-shrink: 0;
}
/* Animations */
@keyframes fadeZoomIn {
0% { opacity: 0; transform: scale(1.2); filter: blur(4px); }
100% { opacity: 1; transform: scale(1); filter: blur(0px); }
}
@keyframes fadeOutText {
to { opacity: 0; }
}
@keyframes fadeOut {
to { opacity: 0; visibility: hidden; }
}
@font-face {
font-family: 'personal-services';
src: url('path/to/personal-services.woff2') format('woff2'),
url('path/to/personal-services.woff') format('woff');
font-weight: normal;
font-style: normal;
}
#ui-bar, #character-menu, .stat-row, #name {
display: none;
}
#story {
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: center;
min-height: 100vh;
margin: 0 !important;
padding: 0 !important;
box-sizing: border-box;
}
.titles {
position: absolute;
top: -4vh;
left: 50%;
transform: translateX(-50%);
z-index: 1;
}
.title {
background-image: url(img/title.png);
background-size: contain;
background-repeat: no-repeat;
background-position: center;
width: 100vw;
max-width: 50rem;
height: 35vh;
margin: 0 auto !important;
padding: 0 !important;
z-index: 1;
}
#title1 {
background-image: url(img/title1.png);
background-size: contain;
background-repeat: no-repeat;
background-position: center;
width: 50vw;
max-width: 25rem;
height: 7vh;
margin: 0 auto !important;
padding: 0 !important;
animation: subwoofer-pump 2s cubic-bezier(0.455, 0.03, 0.515, 0.955) infinite;
transform-origin: center center;
z-index: 1;
position: relative;
top: -8vh;
left: 8px;
}
@keyframes subwoofer-pump {
0% { transform: scale(1); }
20% { transform: scale(1.05); }
40% { transform: scale(0.98); }
60% { transform: scale(1.03); }
80% { transform: scale(0.99); }
100% { transform: scale(1); }
}
.main-menu {
position: absolute;
left: 3vw;
bottom: -3vh;
display: flex;
flex-direction: column;
gap: 0vh;
margin: 0px 0 !important;
z-index: 1000;
}
#save-button {
top: 5px;
}
#save-button, #new-game-button, #credits-button, .main-menu-btn {
display: block !important;
font-family: 'personal-services', 'Arial', sans-serif !important;
font-size: 2vw !important;
font-weight: 900 !important;
color: #d9c27e !important;
cursor: pointer !important;
padding: 0.2rem 0.5rem !important;
letter-spacing: 0.1em !important;
user-select: none !important;
text-decoration: none !important;
background: none !important;
background-color: transparent !important;
background-image: none !important;
border: none !important;
border-radius: 0 !important;
box-shadow: none !important;
outline: none !important;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8) !important;
transition: all 0.3s ease !important;
}
#save-button:hover, #new-game-button:hover, #credits-button:hover, .main-menu-btn:hover {
color: #E6D3A3 !important;
text-decoration: none !important;
background: none !important;
background-color: transparent !important;
background-image: none !important;
border: none !important;
border-radius: 0 !important;
box-shadow: none !important;
outline: none !important;
}
#save-button:active, #new-game-button:active, #credits-button:active, .main-menu-btn:active {
background: none !important;
background-color: transparent !important;
border: none !important;
}
#save-button:focus, #new-game-button:focus, #credits-button:focus, .main-menu-btn:focus {
background: none !important;
background-color: transparent !important;
border: none !important;
outline: none !important;
}
@media screen and (max-width: 768px) {
.title {
height: 14vh;
width: 100vw;
}
#title1 {
height: 3vh;
width: 20vw;
top: 4vh;
left: 1vw;
}
.main-menu {
bottom: -2vh;
left: 1vw;
font-size: 1.5vw;
}
#save-button, #new-game-button, #credits-button, .main-menu-btn {
font-size: 1.5rem !important;
letter-spacing: 0.03em !important;
padding: 0.1rem 0.3rem !important;
}
#credits-content {
padding: 1rem 0.8rem;
max-width: 350px;
width: 90%;
}
.control-btn {
width: 22px;
height: 22px;
font-size: 10px;
}
.control-buttons {
top: -18px;
left: 9px;
gap: 0px;
}
}
@media screen and (max-width: 480px) {
.titles {
top: 2vh;
}
.title {
height: 45vh;
width: 294vw;
}
#title1 {
height: 6vh;
width: 110vw;
top: -0.5vh;
}
.main-menu {
bottom: -7vh;
left: -1vw;
font-size: 1.5vw;
}
#save-button, #new-game-button, #credits-button, .main-menu-btn {
font-size: 1.1rem !important;
letter-spacing: 0.005em !important;
padding: 0.03rem 0.12rem !important;
}
#credits-content {
padding: 0.8rem 0.6rem;
max-width: 300px;
width: 95%;
max-height: 85vh;
}
.control-btn {
width: 20px;
height: 20px;
font-size: 9px;
}
.control-buttons {
top: -20px;
left: 10px;
gap: 0px;
}
#credits-title {
font-size: clamp(1.4rem, 5vw, 1.8rem);
margin-bottom: 0.4rem;
}
.credit-role {
font-size: clamp(0.75rem, 2.5vw, 0.95rem);
}
.credit-name {
font-size: clamp(1rem, 3.2vw, 1.3rem);
margin: 0.05rem 0 0.3rem 0;
}
#credits-close {
font-size: clamp(1.2rem, 4vw, 1.5rem) !important;
margin-top: 0.6rem !important;
}
}
/* Portrait orientation (vertical) specific styles */
@media screen and (max-height: 800px) and (orientation: portrait) {
.main-menu {
bottom: 2vh;
}
#save-button, #new-game-button, #credits-button, .main-menu-btn {
font-size: 1rem !important;
letter-spacing: 0.02em !important;
padding: 0.08rem 0.25rem !important;
}
}
@media screen and (max-height: 650px) and (orientation: portrait) {
.main-menu {
bottom: -7vh;
left: -1vw;
font-size: 1.5vw;
}
#save-button, #new-game-button, #credits-button, .main-menu-btn {
font-size: 0.9rem !important;
letter-spacing: 0.02em !important;
padding: 0.06rem 0.2rem !important;
}
.titles {
top: 1vh;
}
.title {
height: 12vh;
}
#title1 {
height: 2.5vh;
top: -0.3vh;
}
}
/* Small portrait screens (most phones) */
@media screen and (max-height: 700px) and (max-width: 500px) and (orientation: portrait) {
#save-button, #new-game-button, #credits-button, .main-menu-btn {
font-size: 1.2rem !important;
letter-spacing: 0.01em !important;
padding: 0.05rem 0.2rem !important;
}
}
/* Landscape orientation on mobile devices */
@media screen and (max-height: 500px) and (orientation: landscape) {
.main-menu {
bottom: -6vh;
left: -1vw;
font-size: 1.5vw;
}
#save-button, #new-game-button, #credits-button, .main-menu-btn {
font-size: 1.2rem !important;
letter-spacing: 0.01em !important;
padding: 0.1rem 0.15rem !important;
top: 7px;
}
.titles {
top: 4.5vh;
}
.title {
height: 12vh;
}
#title1 {
height: 2vh;
top: -0.2vh;
}
.control-btn {
width: 18px;
height: 18px;
font-size: 8px;
}
.control-buttons {
top: -15px;
left: 8px;
gap: 0px;
}
}
@media screen and (max-height: 400px) and (orientation: landscape) {
#save-button, #new-game-button, #credits-button, .main-menu-btn {
font-size: 1rem !important;
letter-spacing: 0.005em !important;
padding: 0.03rem 0.12rem !important;
}
.main-menu {
bottom: -7vh;
left: -3vw;
font-size: 1.5vw;
}
}
/* Very small landscape screens */
@media screen and (max-height: 350px) and (orientation: landscape) {
#save-button, #new-game-button, #credits-button, .main-menu-btn {
font-size: 0.7rem !important;
padding: 0.02rem 0.1rem !important;
}
}
@media screen and (min-width: 1200px) {
.main-menu {
bottom: -1vh;
left: 5vw;
font-size: 1.5vw;
}
}
@media (orientation: landscape) and (max-height: 600px) {
html body #title1, body #title1, #title1 {
transform: scale(3.375) !important;
transform-origin: center !important;
overflow: visible !important;
z-index: 10 !important;
}
}
</style>
<<script>>
window.setLighting(100);
<</script>> <<script>>
// Remove slideshow container
const slideshowContainer = document.getElementById('menu-slideshow-bg');
if (slideshowContainer) {
slideshowContainer.remove();
console.log('🗑 Removed slideshow container');
}
// Stop slideshow
if (window.SlideshowSystem) {
window.SlideshowSystem.stop('my-slideshow');
}
<</script>>
<<enableMenu>>
<<dialogue "" "Two weeks. Fourteen full days since they told you, with that tense and professional smile, to "take a break." It wasn’t a suggestion, of course. It was an order. Everyone knew it, including you. A polite way to push you out of the way while they decided what to do with you. And now you're here, back, but not because things have improved. More like this is just the prelude to the inevitable." "description">>
<<addDialogue "" "The sky is darker than it should be at this time of day, as if even it knows that a chapter is about to close. You take a deep breath, as if that could ease the weight you carry." "description">>
<<addDialogue "" "It doesn’t matter how many nice words they use, it doesn’t matter how much they try to sugarcoat it, I know I’m done. And the worst part is, I can't even blame them. I'm alone." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Enter in the police station|introB]]">>
<<horizontalEnd>>
<<hideMenuElement "inventory-btn">>
<<toggleMenuElement "lantern-row">>
<<unlockCharacterOnly 1>>
<<script>>
let questId = addQuestWithStages(
"The captain",
"Captain Havook wants to see you in his office right away. From the tense tone of his call and the urgency with which he summoned you, it seems there's something important to discuss.",
[
"Talk to Captain Havok.",
],
"📋",
"main",
"captain_quest", // Custom ID
"img/quest.png" // Quest image
);
// Add stage images so completion notifications show the quest image
if (window.questSystem && window.questSystem.quests["captain_quest"]) {
window.questSystem.quests["captain_quest"].stageImages = [
"img/quest.png", // Stage 1
];
}
State.variables.captainQuestId = "captain_quest";
<</script>>
<<hideMenuElement "shop-btn">>
<<script>>
window.HealthSanitySystem.addSanity(20)
<</script>>
<<script>>
window.HealthSanitySystem.addHealth(100)
<</script>>
<<script>>
stopAllMusic();
<</script>>
<<timed 0.5s>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('pianosonata.mp3', 500);
}, 50);
<</script>>
<</timed>>
<<set $StartGame = true>>
<<setAvatarDirect "casey.png">><<dialogue "" "You step into the police station, and the weight of your coworkers’ stares hits you immediately. You don’t need to turn around to know what they’re thinking—you’ve heard the whispers, the stifled laughs, the comments they only make when they think you can’t hear them." "description">>
<<addDialogue "" "You walk down the hallway, the sound of your footsteps echoing louder than it should. Rodríguez, your former partner, sits at what must be her temporary desk." "description">>
<<addDialogue "" "There was a time when she would’ve greeted you with a quick smile or one of those sharp jokes that only the two of you understood. Now her eyes are cold. The easy familiarity you once shared is gone, replaced by a silence that feels heavier than any accusation she could throw at you." "description">>
<<addDialogue "" "The captain told me to head straight to his office as soon as I get here." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Talk to Rodriguez|rt]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Go through the corridor|ci]]" "center">>
<<script>>
addQuestWithStages(
"Rodriguez (Optional)",
"You ran into Gabriela Rodríguez at the station entrance. The tension from your last case still hangs between you—perhaps it's time to clear the air and salvage your friendship.",
[
" Talk to Gabriela Rodríguez. "
],
"📋",
"side",
"rodriguez", // Custom ID
"img/quest.png" // Quest image
);
// Add stage images so completion notifications show the quest image
if (window.questSystem && window.questSystem.quests["captain_quest"]) {
window.questSystem.quests["captain_quest"].stageImages = [
"img/quest.png", // Stage 1
];
}
State.variables.captainQuestId = "rodriguez";
<</script>>
<<dialogue "" "You approach Rodríguez. She avoids looking at you until you’re too close to ignore. When she finally meets your eyes, there’s a flash of disappointment that quickly hardens into indifference." "description">>
<<if $introC is true>>
<<addDialogue "Gabriela Rodriguez" "Casey, when I saw you walk in, I figured you weren’t even going to talk to me." "talk">>
<<addDialogue "Casey" "Gabi, I..." "talk">>
<<else>>
<<addDialogue "Gabriela Rodriguez" "Casey..." "talk">>
<<addDialogue "Casey" "Gabi, I..." "talk">>
<</if>>
<<addDialogue "Gabriela Rodriguez" "Don’t say another word, Casey. I warned you. I told you what would happen if you kept going down that road, and you didn’t listen." "talk">>
<<addDialogue "" "Her words hit hard, and the truth of them shows on your face." "description">>
<<addDialogue "Casey" "I’m sorry." "talk">>
<<addDialogue "" "Rodríguez holds your gaze, then her expression softens slightly, revealing the sadness beneath her frustration." "description">>
<<addDialogue "Gabriela Rodriguez" "I know you are. But sorry doesn’t change what happened. I tried talking to Henry, but it wasn’t enough." "talk">>
<<addDialogue "" "I’m sure she did everything she could." "thoughts">>
<<addDialogue "Casey" "I know you did. And even though I know you’re disappointed—angry with me—I couldn’t leave without saying goodbye." "talk">>
<<addDialogue "" "Rodríguez looks at you again. Her expression shifts from anger to sorrow, the hurt still clear in her eyes." "description">>
<<addDialogue "Gabriela Rodriguez" "Goodbye, Casey. I hope you can put your life back together. I really do. Just go back to being who you were. Don’t ever give up." "talk">>
<<addDialogue "" "I don’t want to lose her." "thoughts">>
<<addDialogue "Casey" "And I hope we can still be friends. I need you in my life, Gabi. We’ve been through too much together. You’re family to me." "talk">>
<<addDialogue "" "Rodríguez meets your eyes one last time, still carrying the weight of her hurt. Then she gives a small nod, saying nothing. The gesture carries a faint glimmer of acknowledgment—as if she’s leaving the door cracked open, just a little. There’s nothing more to say. It’s time to head to the captain’s office." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Keep moving forward|km]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/rodriguez.png" "Gabriela Rodriguez">>
<<set $Rodriguezintro = true>>
<<setAvatarDirect "sad.png">>
<<script>>
completeQuestStage("rodriguez");
<</script>>
<<unlockPhoto 1 2>>
<<unlockCharacterOnly 3>><<if $Rodriguezintro isnot true>>
<<dialogue "" "I don't want to talk to her right now." "thoughts">>
<<addDialogue "" "You pretend not to notice and keep moving, Rodríguez gives you one last sorrowful look as you walk away, her own eyes reflecting a shared pain, as though she, too, carries the burden of this inevitable goodbye." "description">>
<<addDialogue "" "The place feels colder, emptier, like you brought a storm with you and everyone is doing their best to stay out of its path. At the end of the hall, the Captain’s office looms, silent and unyielding. Every step toward it feels heavier than the last, but stopping isn’t an option." "description">>
<<else>>
<<dialogue "" "The place feels colder, emptier, like you brought a storm with you and everyone is doing their best to stay out of its path. At the end of the hall, the Captain’s office looms, silent and unyielding. Every step toward it feels heavier than the last, but stopping isn’t an option." "description">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Continue through the hallway|ci1]]">>
<<horizontalEnd>><<dialogue "" "At the end of the hallway stands the captain’s office, directly ahead. Halfway down, you recognize your old office—its nameplate still there. Nearby, a third door leads straight to the shooting range." "description">>
<<if $bag is true>>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<addDialogue "" "[[Captain's office|preintro]]">>
<<addDialogue "" "[[Your old office|io]]">>
<<addDialogue "" "[[Go to the entrance|introC]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Your old office|io]]">>
<<addDialogue "" "[[Go to the entrance|introC]]">>
<<horizontalEnd>>
<</if>>
<<if $youroldofficequest isnot true>>
<<script>>
addQuestWithStages(
"Backpack",
"You forgot your backpack in your old office at the station. Head inside and retrieve it before you can move forward with anything else.",
[
"Retrive your backpack. "
],
"📋",
"main",
"backpack_quest", // Custom ID
"img/quest.png" // Quest image - use any image path you have
);
State.variables.captainQuestId = "backpack_quest";
<</script>>
<<set $youroldofficequest = true>>
<</if>><<dialogue "" "You’ve reached your destination. At the end of the hallway is the captain’s office. Halfway down, you pass your old office—its nameplate still in place. Nearby, another door leads to the shooting range. Captain Henry Havook has called you here, and it’s safe to assume it’s not for a friendly chat." "description">>
<<addDialogue "Casey" "Well, here I am. This might be the last time I get to even look at my old office." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Enter in the office|io]]">>
<<addDialogue "" "[[Go to Station's entrance|introC]]">>
<<horizontalEnd>>
<<set $Ic = true>>
<<if $youroldofficequest isnot true>>
<<script>>
addQuestWithStages(
"Backpack",
"You forgot your backpack in your old office at the station. Head inside and retrieve it before you can move forward with anything else.",
[
"Retrive your backpack. "
],
"📋",
"main",
"backpack_quest", // Custom ID
"img/quest.png" // Quest image - use any image path you have
);
State.variables.captainQuestId = "backpack_quest";
<</script>>
<<set $youroldofficequest = true>>
<</if>>
<<dialogue "" "The air hangs heavy with the familiar smell of stale coffee and old paper—a scent that immediately drags you back to countless long nights spent working cases that never seemed to end." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Wall|wi]]">>
<<addDialogue "" "[[Desk|di]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<if $talkcaptain is true>>
<<addDialoguePos "" "[[Hallway|PasilloIntro]]" "center">>
<<else>>
<<addDialoguePos "" "[[Hallway|ci2]]" "center">>
<</if>>
<<set $showWall to true>><<if $Rodriguezintro isnot true>>
<<dialogue "" "As you leave the hallway and step back into the precinct lobby, the door swings open and the familiar chaos of the place surrounds you once again. Your eyes settle on Gabriela, still hunched over her temporary desk, studying a spread of photographs and handwritten notes." "description">>
<<addDialogue "" "Maybe I should say something to her. I don’t want to leave things like this." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Talk to Rodriguez|rt]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Go through the corridor|ci2]]" "center">>
<<else>>
<<dialogue "" "As you leave the hallway and step back into the precinct lobby, the door swings open and the familiar bustle of the place surrounds you again. Your eyes land on Gabriela, still sitting at her temporary desk, absorbed in a collection of photographs and scattered notes." "description">>
<<addDialogue "" "I’ve already said what I needed to say to Gabi. She’s made it clear she doesn’t want to hear any more from me right now." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Go through the corridor|ci2]]">>
<<horizontalEnd>>
<</if>>
<<set $introC = true>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "As you enter the shooting range, the few agents present glance at you. Without a word, they quickly gather their things and leave in silence, avoiding your gaze. The echo of their hurried footsteps fades, leaving only the faint hum of the fluorescent lights. The scent of old gunpowder and cold metal lingers in the air, both familiar and distant at the same time." "description">>
<<addDialogue "" "You stand still for a moment, observing the empty booths and the targets riddled with dozens of bullet holes from the past." "description">>
<<addDialogue "" "I could shoot a little before finishing all of this." "thoughts">>
<<default>>
<<dialogue "" "The room is completely empty of people, silent, with no one in sight. There’s nobody around." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Training shoot|TrainingShoot]]">>
<<addDialogue "" "[[Take ammo 9mm|introammo|?!canPickupPistolAmmo]]">>
<<addDialogue "" "[[Take magnum ammo|intamgnum|?!canPickupMagnumAmmo]]">>
<<if $introrevolver isnot true>>
<<addDialogue "" "[[Take revolver|introrevolver|?inventoryFull]]">>
<</if>>
<<horizontalEnd>>
<<spacing "20px">>
<<if $talkcaptain is true>>
<<addDialoguePos "" "[[Exit|PasilloIntro]]" "center">>
<<else>>
<<addDialoguePos "" "[[Exit|ci2]]" "center">>
<</if>>
<<set $practique = 1>>
<<dialogue "" "You step quickly into the office, and Captain Havook fixes his gaze on you with a serious expression. When his eyes meet yours, he lets out a weary sigh. Sensing the tension in the room, you decide to break the silence." "description">>
<<addDialogue "Casey" "Captain..." "talk">>
<<addDialogue "Captain Havok" "Please, have a seat, Casey." "talk">>
<<addDialogue "" "The captain gestures for you to sit, pointing to the empty chair in front of his desk." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Sit in front of the captain|preintro1]]">>
<<horizontalEnd>>
<<set $practique = 0>>
<<showNPC "Captain" "img/characters/henry/captain.png" "Captain Henry Havok">>
<<script>>
completeQuestStage("captain_quest");
<</script>>
<<if $Rodriguezintro isnot true>>
<<script>>
completeQuestStage("rodriguez");
<</script>>
<</if>>
<<unlockCharacterOnly 5>>
<<if $Rodriguezintro isnot true>>
<<unlockCharacterOnly 3>>
<</if>><<switch visited()>>
<<case 1>>
<<dialogue "" "Your eyes drift to the old corkboard on the wall—faded notes and photos barely hanging on by threads. The last case you worked with Gabriela. The victim's face stares back at you from a yellowed photograph, pinned next to a date circled in red marker. Everything went wrong. A woman died before you could reach her. Daniel R. Harrington. Gabriela had to put him down before he could claim anyone else." "description">>
<<addDialogue "" "I tried talking him down. Lost my cool. Maybe I didn't even want to save him." "thoughts">>
<<default>>
<<dialogue "" "The corkboard with your last case is still there. Gabriela Rodriguez's handwriting on half the notes. The victim's photo, that red-circled date. A young woman who died waiting for you. Gabriela put a bullet in the killer to stop him from taking more." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Back|io]]">>
<<horizontalEnd>>
<<dialogue "" "You look at the desk again, but now it feels emptier, more distant. The papers are still there, scattered, but they no longer carry the same weight. Without your bag leaning against the leg, the place feels even more abandoned, as if the trace of your presence is slowly fading away. It’s strange how something so small can make everything feel so different." "description">>
<<addImage "img/events/desk1.png">>
<<horizontalStart>>
<<addDialogue "" "[[Computer|introsave]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Back|io]]">>
<<horizontalEnd>><<if $bag is true>>
<<goto "di2">>
<<else>>
<<dialogue "" "As you look at the desk, your eyes take in the mess: a pile of scattered papers, half-finished reports, and faded sticky notes clinging to every available surface. Among the clutter, you spot documents from that last case, still unfiled, as if no one has touched them since everything went to hell. The key words stand out in bold ink: homicide, failed rescue, Rodríguez. Then your gaze lands on something familiar—your bag." "description">>
<<addDialogue "Casey" "My bag… With all the chaos from that last case, I never came back for it." "talk">>
<<addImage "img/events/mochila.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take your bag|di1|?inventoryFull]]">>
<<horizontalEnd>>
<<script>>
completeQuestStage("Old office");
<</script>>
<</if>> <<dialogue "" "The computer is on." "description">>
<<addImage "img/events/desk1.png">>
<<horizontalStart>>
<<addDialogue "" "<div class='main-menu-btn' id='save-button'>Save/Load</div>">>
<<horizontalEnd>>
<<addDialoguePos "" "[[Go back|io]]" "center">>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<script>>
stopAllMusic();
setBackgroundMusic('pianosonata.mp3');
<</script>>
<<dialogue "" "You look at the desk again, but now it feels emptier, more distant. The papers are still there, scattered, but they no longer carry the same weight. Without your bag leaning against the leg, the place feels even more abandoned, as if the trace of your presence is slowly fading away. It’s strange how something so small can make everything feel so different." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|io]]">>
<<horizontalEnd>>
<<showMenuElement "inventory-btn">>
<<script>>
window.addItemFromDatabase('pistol', 1);
<</script>>
<<script>>
window.addItemFromDatabase('pistol_ammo', 30);
<</script>>
<<set $bag = true>>
<<set $youroldofficequest = true>>
<<script>>
completeQuestStage("backpack_quest");
<</script>>
<<run startAdvancedBattle([
{
type: 'practiceTarget',
hp: 120,
distance: 50,
randomDistance: false,
speed: 0,
damage: 0,
DamageIgnore: {
'pistol': 0.0,
'rifle': 0.0,
'shotgun': 0.0,
'melee': 0.0,
'incendiary': 0.0,
'dragon_breath': 0.0,
'tracer': 0.0,
'9mm': 0.0,
'.45': 0.0,
'slugs': 0.0
}
},
], 'practiquewin', true, 'practiqueescape', true)>>
<<if $FightTutorial isnot true>>
<<set $FightTutorial = true>>
<div id="combatTutorialModal" class="modal">
<div class="modal-content">
<span class="close-button" onclick="document.getElementById('combatTutorialModal').style.display='none'">×</span>
<h2>Combat Tutorial with Firearms and Melee Weapons</h2>
<p><strong>Goal:</strong> Defeat all enemies without dying.</p>
<div class="modal-section">
<div class="modal-column">
<strong>Controls:</strong>
<ul>
<li><strong>Firearms:</strong>
<ul>
<li>Equip a firearm (such as a pistol, shotgun, or rifle) and the corresponding ammunition to shoot.</li>
<li>Press the "Shoot" button. If facing multiple enemies at once, press the "Shoot" button and then select the enemy card you want to attack.</li>
</ul>
</li>
<li><strong>Melee Attacks and Weapons: (Next Update)</strong>
<ul>
<li>If you have no weapons, you can perform melee attacks by waiting for the enemy to get close enough. These attacks deal less damage, but you can equip melee weapons to improve them.</li>
<li>Equip a melee weapon (such as a knife, bat, or machete) to perform close-range attacks when enemies are close enough.</li>
<li><strong>Note:</strong> Equipping a melee weapon will automatically unequip any equipped firearm, and vice versa.</li>
<li>Damage varies depending on the melee weapon used.</li>
</ul>
</li>
</ul>
</div>
<div class="modal-column">
<strong>Additional Tips:</strong>
<ul>
<li>Different types of ammunition can deal extra damage with firearms.</li>
<li>You can find weapon modifications that increase damage or accuracy.</li>
<li>Different rooms and hallways have various types of lighting, which affect your accuracy. Use the flashlight (when you have the flashlight) in dark places to gain an accuracy bonus.</li>
</ul>
</div>
</div>
<div style="text-align: center; margin-top: 20px;">
<button id="continueButton" class="continue-button">Continue</button>
</div>
</div>
</div>
<<script>>
$(document).ready(function () {
$("#combatTutorialModal").css("display", "flex");
$(document).off("click", "#continueButton, .close-button").on("click", "#continueButton, .close-button", function () {
$("#combatTutorialModal").css("display", "none");
});
});
<</script>>
<<timed 300ms>>
<<script>>
playSoundDirect('button.mp3');
<</script>>
<</timed>>
<</if>>
<style>
p {
text-align: center;
color: #e9e9e9;
}
b, strong {
font-weight: 700;
color: #d3bd7b;
}
.modal {
position: fixed;
z-index: 99999999;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0, 0, 0, 0.8);
display: flex;
justify-content: center;
align-items: center;
margin: 0;
padding: 0;
}
.modal-content {
background: rgba(20, 20, 20, 0.9);
border: 3px solid #634d23;
border-radius: 5px;
padding: 20px;
max-width: 600px;
max-height: 80vh;
overflow-y: auto;
color: #d9c27e;
font-family: 'Trajan Pro', 'Times New Roman', serif;
}
.modal-content h2 {
text-align: center;
color: #ffcc00;
position: relative;
top: -2em;
margin-bottom: -2em;
}
.close-button {
color: #ffcc00;
float: right;
font-size: 28px;
font-weight: bold;
cursor: pointer;
position: relative;
top: -1.7em;
}
.modal-section {
display: flex;
flex-wrap: wrap;
}
.modal-column {
flex: 1;
min-width: 290px;
padding: 38px;
margin-bottom: -5em;
margin-top: -3em;
color: #e9e9e9;
}
.modal-content ul {
list-style-type: disc;
padding-left: 20px;
line-height: 1.6;
}
.continue-button {
padding: 10px 20px;
background-color: #3e3423;
color: #d9c27e;
border: 1px solid #634d23;
border-radius: 3px;
cursor: pointer;
font-family: 'Trajan Pro', 'Times New Roman', serif;
font-size: 16px;
transition: all 0.2s;
text-shadow: 1px 1px 1px #000;
}
.continue-button:hover {
background-color: #3e3423;
}
</style>
<<if window.ClothingSystem.currentClothes === 'jacket'>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<elseif window.ClothingSystem.currentClothes === 'coat'>>
<<setAvatarDirect "caseycoatpistol.png">>
<<else>>
<<setAvatarDirect "caseycoatpistol.png">>
<</if>><<dialogue "" "You approach the pile of ammunition stacked in the corner of the room. Without hesitation, you grab a magazine loaded with 9mm bullets." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('pistol_ammo', 50);<</script>><<dialogue "" "You sit in front of Captain Havook, feeling the weight of the silence. His gaze cuts through you, full of disappointment, and the atmosphere fills with unbearable tension. He doesn't say anything, but you don't need to hear more to know what he's thinking. Every second drags on, and the feeling of having let down someone who once trusted you becomes unbearable. Finally, you can't take it anymore. You break the silence, your voice sharp and filled with anger." "description">>
<<addDialogue "Casey" "Two weeks for this, Henry? Really? You force me to stay at home, make me feel like a criminal, and now you call me here just to say goodbye? Is that it? That easy? You could've just fired me with a simple phone call." "talk">>
<<addDialogue "Captain Havok" "You're more than just another agent, Casey. I couldn't say goodbye with a simple phone call. You've been through too much, and you've done so much for this city... you were a source of pride for our department. You deserve more than that, even if it's hard for everyone, especially Rodriguez." "talk">>
<<addDialogue "" "I do it to save lives!" "thoughts">>
<<addDialogue "Casey" "You know that what I did was for the case, for the victims. Because no one else was going to get their hands dirty to do what was necessary! Not you, not Rodriguez, not any of the others! And now it turns out I'm the bad one? After everything I've given, everything I've lost, you're just throwing me away?" "talk">>
<<addDialogue "Captain Havok" "I couldn't let you keep going down this path. It's not just about your last case. It's your attitude that's changed. You've started crossing lines... You've adopted practices that, while perhaps not always visible to others, are still a violation of the very values we stand for as officers of the law. You're no longer the person you used to be. And that... I can't ignore that. I can't let you keep sinking further into this abyss. I'm trying to save you." "talk">>
<<addDialogue "" "I don't need to be saved!" "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Let the anger out|preintro2]]">>
<<horizontalEnd>>
<<showNPC "Captain" "img/characters/henry/captain.png" "Captain Henry Havok">>
<<dialogue "Casey" "Saving me? Really, Henry? If I lost control, it's because no one else had the balls to do what needed to be done. You, Rodriguez, the others—you all played it safe while I got my hands dirty. And now you have the nerve to tell me this is for my own good? To say you're 'taking care of me'? I don't need you to take care of me, Henry!" "talk">>
<<addDialogue "Captain Havok" "Casey... this isn't easy for me to do. But your behavior... it just leaves me no other choice." "talk">>
<<addDialogue "" "It's not easy? No choice? Fuck, Henry!" "thoughts">>
<<addDialogue "Casey" "Don't pretend this is hard for you. I'm sure it's tearing you up inside, right? Just as much as it's tearing me apart." "talk">>
<<addDialogue "" "The captain's gaze hardens, and his tone grows more severe." "description">>
<<addDialogue "Captain Havok" "Enough! You've crossed too many lines. The arguments, the fights with other agents, showing up drunk at a crime scene... You've lost control. I could ask for the gun and the badge, but the gun is yours, so just hand over the badge." "talk">>
<<addDialogue "Casey" "Tsk..." "talk">>
<<addDialogue "" "You hesitate, your silence heavier than any words you could muster. Deep down, you know Henry is right. You stare at the badge in your hand, its weight suddenly unbearable. Finally, with a heavy heart, you place the badge on Henry's desk, the sound of it landing echoing in the quiet room." "description">>
<<addDialogue "Captain Havok" "I've spoken to Mayor Quentin, and we've come to the conclusion that we can't give you any more chances. Please, we need you to sign the form." "talk">>
<<addDialogue "" "Captain Henry slides a document toward you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check the form|NameSelection]]">>
<<horizontalEnd>>
<<showNPC "Captain" "img/characters/henry/captain.png" "Captain Henry Havok">>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<<set $talkcaptain = true>><<if $practique is 1>>
<<goto "practiquewin">>
<</if>>
<<if $cavefight is 1>>
<<goto "wincave">>
<</if>>
<<if $wolfcave is 1>>
<<goto "wincavebattle">>
<</if>>
<<if $diabolicwolfcave is 1>>
<<goto "wincavebattle2">>
<</if>>
<<if $Fwolf is 1>>
<<goto "WinForestWolf">>
<</if>>
<<if $Fdiabolicwolf is 1>>
<<goto "WinForestDwolf">>
<</if>>
<<if $bwfight is 1>>
<<goto "Winbwfight">>
<</if>>
<<if $bwfight2 is 1>>
<<goto "Winbwfight2">>
<</if>>
<<if $srcff is 1>>
<<goto "Winsrcff">>
<</if>>
<<if $srcsf is 1>>
<<goto "Srwin">>
<</if>>
<<if $Sroom2 is 1>>
<<goto "Sroom2win">>
<</if>>
<<if $MHfight is 1>>
<<goto "winEnemydoor">>
<</if>>
<<if $aberrationfight1 is 1>>
<<goto "Event_Aberration01">>
<</if>>
<<if $bbfight is 1>>
<<goto "bbwin">>
<</if>>
<<if $corridorANurse is 1>>
<<goto "CellCorridorA2WinNurse">>
<</if>>
<<if $DemonA2 is 1>>
<<goto "CellCorridorA2WinDemon">>
<</if>>
<<if $C2PeleaBB is 1>>
<<goto "C2PeleaBBwin">>
<</if>>
<<if $ME is 1>>
<<goto "MEWin">>
<</if>>
<<if $TNurses is 1>>
<<goto "TNWin">>
<</if>>
<<if $MirrorFight is 1>>
<<goto "MirrorsWin">>
<</if>>
<<if $EventSisterPelea is 1>>
<<goto "EventSisterWin">>
<</if>>
<<if $lpcbPelea is 1>>
<<goto "lcpbWin1">>
<</if>>
<<if $lpcbPelea2 is 1>>
<<goto "lcpbWin2">>
<</if>>
<<if $cell03pelea is 1>>
<<goto "Cell03Win">>
<</if>>
<<if $PregnantPeleaPB is 1>>
<<goto "PregnantBBPB">>
<</if>>
<<if $PregnantPeleaBBPB is 1>>
<<goto "PregnantBBPBPeleaWin">>
<</if>>
<<if $shadowpbpelea is 1>>
<<goto "shadowpbpeleaWin">>
<</if>>
<<if $BrunoPelea is 1>>
<<goto "BrunoWin">>
<</if>>
<<if $NunShoot is 1>>
<<goto "NunWin">>
<</if>>
<<set $EventE1 = 0>>
<<set $EventE2 = 0>>
<<set $EventE3 = 0>>
<<set $EventE4 = 0>>
<<set $EventE5 = 0>>
<<set $EventE6 = 0>>
<<set $EventPB1 = 0>>
<<set $EventPB2 = 0>>
<<set $EventCell03 = 0>>
<<if $intro is true>>
<<if $CaseyJacket is true && $CaseyCoat isnot true>>
<<setAvatarDirect "caseyjacket.png">>
<<elseif $CaseyJacket isnot true && $CaseyCoat is true>>
<<setAvatarDirect "caseycoat.png">>
<<else>>
<<setAvatarDirect "casey2.png">>
<</if>>
<<elseif $intro isnot true>>
<<setAvatarDirect "casey.png">>
<</if>><<if $cavefight is 1>>
<<goto "escapecavewolf">>
<</if>>
<<if $wolfcave is 1>>
<<goto "escapecavebattle">>
<</if>>
<<if $diabolicwolfcave is 1>>
<<goto "escapecavebattle2">>
<</if>>
<<if $Fwolf is 1>>
<<goto "EscapeForestWolf">>
<</if>>
<<if $Fdiabolicwolf is 1>>
<<goto "EscapeForestDwolf">>
<</if>>
<<if $bwfight is 1>>
<<goto "Escapebwfight">>
<</if>>
<<if $bwfight2 is 1>>
<<goto "Escapebwfight2">>
<</if>>
<<if $srcff is 1>>
<<goto "srcffescape">>
<</if>>
<<if $Sroom2 is 1>>
<<goto "Sroom2escape">>
<</if>>
<<if $srcsf is 1>>
<<goto "srcsfescape">>
<</if>>
<<if $MHfight is 1>>
<<set $MHenemy = false>>
<<goto "Main Hallway2">>
<</if>>
<<if $aberrationfight1 is 1>>
<<goto "Main Hallway3">>
<<set $aberrationfight1 = 0>>
<<set $AberrationEvent = 0>>
<</if>>
<<if $bbfight is 1>>
<<set $bbfight = 0>>
<<goto "BedroomA">>
<</if>>
<<if $corridorANurse is 1>>
<<set $corridorANurse = 0>>
<<goto "CellCorridorA2">>
<</if>>
<<if $DemonA2 is 1>>
<<set $DemonA2 = 0>>
<<goto "CellCorridorA2">>
<</if>>
<<if $BedroomBPeleaBB is 1>>
<<set $BedroomBPeleaBB = 0>>
<<goto "BedroomB">>
<</if>>
<<if $BedroomBPelea is 1>>
<<set $BedroomBPelea = 0>>
<<goto "BedroomB">>
<</if>>
<<if $ME is 1>>
<<set $ME = 0>>
<<goto "BedroomC">>
<</if>>
<<if $TNurses is 1>>
<<set $TNurses = 0>>
<<goto "BedroomC">>
<</if>>
<<if $C2PeleaBB is 1>>
<<set $C2PeleaBB = 0>>
<<goto "CellCorridorC2">>
<</if>>
<<if $MirrorFight is 1>>
<<set $MirrorFight = 0>>
<<goto "Mirrors2">>
<</if>>
<<if $EventSisterPelea is 1>>
<<goto "EventSisterEscape">>
<</if>>
<<if $lpcbPelea is 1>>
<<set $lpcbPelea = 0>>
<<goto "LeftCorridorPB">>
<</if>>
<<if $lpcbPelea2 is 1>>
<<goto "Sectionpb2">>
<<set $lpcbPelea2 = 0>>
<</if>>
<<if $cell03pelea is 1>>
<<set $cell03pelea = 0>>
<<goto "Cell03Win">>
<</if>>
<<if $PregnantPeleaPB is 1>>
<<set $PregnantPeleaPB = 0>>
<<set $PregnantPatientPB = false>>
<<goto "IsolationCells2">>
<</if>>
<<if $shadowpbpelea is 1>>
<<set $shadowpbpelea = 0>>
<<goto "MainCorridorPlantaBaja">>
<</if>>
<<if $NunShoot is 1>>
<<set $NunShoot = 0>>
<<goto "BedroomD">>
<</if>>
<<set $EventE1 = 0>>
<<set $EventE2 = 0>>
<<set $EventE3 = 0>>
<<set $EventE4 = 0>>
<<set $EventE5 = 0>>
<<set $EventE6 = 0>>
<<set $EventPB1 = 0>>
<<set $EventPB2 = 0>>
<<set $EventCell03 = 0>>
<<if $intro is true>>
<<if $CaseyJacket is true && $CaseyCoat isnot true>>
<<setAvatarDirect "caseyjacket.png">>
<<elseif $CaseyJacket isnot true && $CaseyCoat is true>>
<<setAvatarDirect "caseycoat.png">>
<<else>>
<<setAvatarDirect "casey2.png">>
<</if>>
<<elseif $intro isnot true>>
<<setAvatarDirect "casey.png">>
<</if>><<dialogue "" "The form is in front of you. At the top, the logo of the New Veris Police Department is clearly visible. It's a pre-established resignation form, issued by the department. The \"Emotional and psychological\" box has already been marked for you." "description">>
<div class="form-container">
<<addImage "img/documents/rf.png">>
<div class="form-overlay">
<<addDialogueInput "" "playerName" "Alina" "name-input" "$playerName" "noButton" "placeholder=First name">>
<div class="sign-button">
<<horizontalStart>>
<<addDialogue "" "[[Sign|introexit]]">>EllenCell
<<horizontalEnd>>
</div>
</div>
</div>
<<set $Mc = {
Name: $playerName,
img: "img/characters/casey/casey-avatar.png"
}>>
<<set $McName = $playerName>>
<<set $avt = 1>>
<<script>>
window.addDocumentWithNotification(
"resignation_form",
"Resignation Form",
"The last document you take from NVPD",
"",
"close_photo",
"📋",
{
imagePath: "img/documents/rf.png",
location: "New Veris Police Department",
photographer: "Captain Havook",
frontDescription: 'A pre-established resignation form from the New Veris Police Department.'
}
);
<</script>>
<<script>>
playSoundDirect('page.mp3');
<</script>>
<style>
.form-container {
position: relative;
display: inline-block;
width: 100%;
max-width: 100%;
}
.form-container img {
width: 100%;
height: auto;
max-width: 650px;
display: block;
margin: 0 auto;
}
.form-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10000;
pointer-events: none;
}
.form-overlay > * {
pointer-events: auto;
}
.name-input {
position: absolute !important;
top: 68% !important;
left: 35% !important;
transform: translateX(-50%) !important;
width: 200px !important;
max-width: 25% !important;
z-index: 10001 !important;
}
.sign-button {
position: absolute;
bottom: 5%;
left: 50%;
transform: translateX(-50%);
z-index: 10002;
}
.macro-addDialogue a {
background-color: rgba(0, 0, 0, 0.8) !important;
color: white !important;
padding: 8px 16px !important;
border: 2px solid #634d23 !important;
border-radius: 5px !important;
text-decoration: none !important;
display: inline-block !important;
font-weight: bold !important;
font-size: 14px !important;
}
.macro-addDialogue a:hover {
background-color: rgba(100, 77, 35, 0.8) !important;
border-color: #8a7440 !important;
}
input, select, textarea {
color: #ffffff !important;
background-color: rgba(9, 25, 40, 0.9) !important;
border: 1px solid #444 !important;
padding: 0.4em !important;
border-radius: 3px !important;
}
input[type=text] {
min-width: 10em;
}
html[data-outlines] input:focus,
html[data-outlines] select:focus,
html[data-outlines] textarea:focus,
input:hover, select:hover, textarea:hover {
background-color: rgba(62, 52, 35, 0.9) !important;
border-color: #eee !important;
}
/* Mobile responsive adjustments */
@media (max-width: 768px) {
.name-input {
top: 65% !important;
left: 50% !important;
width: 150px !important;
max-width: 40% !important;
font-size: 12px !important;
}
.sign-button {
bottom: 8%;
}
.macro-addDialogue a {
padding: 6px 12px !important;
font-size: 12px !important;
}
}
@media (max-width: 480px) {
.name-input {
top: 62% !important;
width: 120px !important;
max-width: 50% !important;
font-size: 11px !important;
}
.sign-button {
bottom: 10%;
}
.macro-addDialogue a {
padding: 5px 10px !important;
font-size: 11px !important;
}
}
</style><<dialogue "" "You step out of Captain Havook's office with your shoulders slumped, feeling the weight of the decision you've just made—or rather, the decision that was imposed on you—pressing on your soul. The door to the captain's office slams shut behind you with a metallic sound, and for a moment, you stand there, frozen in the threshold, as if the world itself had stopped you in your tracks. The precinct, once your home, now feels foreign to you. Everything you've done, everything you've lived through, seems to crumble around you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|PasilloIntro]]">>
<<horizontalEnd>>
<<set $Mc2 = $Mc>>
<<set $McName = $playerName>>
<<dialogue "" "You reach the exit, now you leave behind forever what you once considered your home. As you open the front door, the cold air from the street hits your face, as if the outside world is greeting you with indifference. There are no celebrations, no applause. Just the emptiness of a decision made for you, or at least that's what you'd like to believe, because deep down, you know it's all your fault. The sound of your footsteps fades into the darkness of the night. Then you close your eyes, and the tears finally come, silent but heavy, slipping down your face as you stand alone in the cold." "description">>
<<addDialogue "" "Did I really want to follow this path? To lose everything because of decisions I couldn't avoid? Henry is right, maybe it's time to change. To leave behind this life that consumes me, this endless vicious circle. My next stop will be my own office, no rules imposed by others, no judgment from anyone. But this time, it will be different. I have to do it the right way. No more lies. No more excuses. It's time to start over. Casey, I know you can do it, I know I can do it..." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Good bye forever|intromessage]]">>
<<horizontalEnd>>
<<setAvatarDirect "sad.png">>
<<unlockPhoto 1 2>> <<timed 8s>><<dialogue "" "It's been two years since your life changed completely. Two years since everything came crashing down." "description">><<addDialogue "" "You remember the person you used to be: sharp, analytical, always in control. The kind of Detective who could see the truth in the midst of lies. But after everything that happened, that part of you became hard to find. You drowned in darkness, in guilt, in self-destruction. You hit rock bottom and almost lost everything." "description">>
<<addDialogue "" "But you pulled yourself out. Slowly,you started to piece together what was left of you. With what little you had, you managed to open your own Detective agency—a way to rebuild your life, to make sense of what remained." "description">>
<<addDialogue """Now, your mind drifts. Memories and worries swirl like smoke, pulling you deeper." "description">><</timed>>
<<timed 8s>>
<<horizontalStart>><<addDialogue "" "[[Continue dreaming|intro]]">><<horizontalEnd>>
<</timed>>
<<script>>
window.ResponsiveChaptertitle("2 Years Later");
setTimeout(() => {
['#text-section', '.dialogue-container', '#dialogue-content'].forEach(selector => {
const element = document.querySelector(selector);
if (element) {
element.style.setProperty('opacity', '1', 'important');
element.style.setProperty('pointer-events', 'auto', 'important');
}
});
}, 5200);
window.gameState.inventory.main.fill(null);
window.gameState.inventory.main[5] = null;
window.gameState.inventory.quickbar.fill(null);
stopAllMusic();
State.variables.Sanity = State.variables.MaxSanity;
window.HealthSanitySystem.addSanity(80);
window.HealthSanitySystem.addHealth(100);
<</script>>
<<set $intro = true>>
<<set $bag = 0>>
<<setAvatarDirect "nude.png">>
<<script>>
window.decreaseSanity(10);
<</script>> <<timed 100ms>>
<<vdialogue "" "My name’s Casey. Everyone just calls me that. I was born and raised right here in New Veris, twenty-five years ago. When I turned eighteen, I joined the police force because I really thought I could make a difference. I’ve always been good at figuring things out—putting the pieces together—and that got me promoted to detective when I was just twenty, even before I finished my criminology degree. Some intelligence agencies came sniffing around with job offers, but I wasn’t interested. I wanted to stay here, working the streets of the city I grew up in. I figured I was ready for whatever came my way." "thoughts">>
<<addDialogue "" "Turns out, I wasn’t. Everything went to hell the night my parents were murdered and my sister, Angelica, was taken. That same night, I had no idea what was happening at home because I was out with..." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[My ex, Luke (hetero)|malepartner]]">>
<<addDialogue "" "[[My ex, Violet (lesbian)|femalepartner]]">>
<<horizontalEnd>>
<<addDialoguePos "" "[[Gabriela (disable previous relationship)|nopartner]]" "center">>
<</timed>>
<<createMenu>>
<<set $Naked = true>>
<<set $intro = true>>
<<set $bag = 1>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('newstart.mp3', 500);
}, 1000);
<</script>>
<<script>>
window.setLighting(100);
<</script>>
<<unlockPhoto 1 3>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>><<dialogue "" "The riddled target descends and a fresh one automatically takes its place." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Shooting range]]">>
<<horizontalEnd>>
<<set $practique = 0>>
<<if $intro is true>>
<<if $CaseyJacket is true && $CaseyCoat isnot true>>
<<setAvatarDirect "caseyjacket.png">>
<<elseif $CaseyJacket isnot true && $CaseyCoat is true>>
<<setAvatarDirect "caseycoat.png">>
<<else>>
<<setAvatarDirect "casey2.png">>
<</if>>
<<elseif $intro isnot true>>
<<setAvatarDirect "casey.png">>
<</if>><<dialogue "" "You quit the shooting practice before completing it." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Shooting range]]">>
<<horizontalEnd>>
<<set $practique = 0>>
<<if $intro is true>>
<<if $CaseyJacket is true && $CaseyCoat isnot true>>
<<setAvatarDirect "caseyjacket.png">>
<<elseif $CaseyJacket isnot true && $CaseyCoat is true>>
<<setAvatarDirect "caseycoat.png">>
<<else>>
<<setAvatarDirect "casey2.png">>
<</if>>
<<elseif $intro isnot true>>
<<setAvatarDirect "casey.png">>
<</if>><<dialogue "" "That night, unaware of what was happening at White, I was with Luke, spending a calm evening together. Nothing unusual, nothing that could have warned me that—at that exact moment—someone was breaking into my home. I never believed it was a random robbery; something deep inside told me it had been planned. Too deliberate. Too precise." "thoughts">>
<<addDialogue "" "My parents were found dead. And Angelica... my sister Angelica had vanished without a trace." "thoughts">>
<<addDialogue "" "For months—no, for two years—I chased every lead, every rumor, every anonymous call. I held onto the hope of finding her alive, but everything led to nothing. No witnesses. No prints. No usable DNA. Nothing to move the investigation forward." "thoughts">>
<<addDialogue "" "The police didn’t officially close the case—they archived it. A cold case. On paper, it was still open. In practice, it meant no active investigation, no detectives assigned, no progress at all. And I was left alone with my grief." "thoughts">>
<<addDialogue "" "After that, everything in my life fell apart. I drowned myself in guilt and alcohol, trying to numb the emptiness inside. I became reckless, crossing lines I once swore I never would. My mistakes hurt the people closest to me. Eventually, the department kicked me out." "thoughts">>
<<addDialogue "" "Luke tried to stay by my side at first. He really did. But I wasn’t the same person anymore. I shut him out, pushed him away, buried myself in my pain until he finally walked away. I don’t blame him. No one can hold together someone who’s determined to fall apart." "thoughts">>
<<addDialogue "" "But even at my worst, part of me stayed rational. When I finally hit rock bottom, I knew I couldn’t stay there. So I opened a private detective agency—not to start over, but to keep going. To keep searching for justice in a world that had taken everything from me." "thoughts">>
<<addDialogue "" "Maybe it’s redemption. Maybe it’s revenge. Or maybe I’m just a broken woman chasing something she’ll never find." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Wake up|intro1]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Wake up (Skip intro)|SkipIntro]]">>
<<horizontalEnd>>
<<unlockCharacterOnly 6>>
<<set $Mpartner = true>>
<<set $Fpartner = false>>
<<set $Solo = false>>
<<set $CaseyHetero = 20>><<dialogue "" "That night, unaware of what was happening at White, I was with Violet, enjoying a quiet evening together. Nothing out of the ordinary. Nothing that could have warned me that, at that exact moment, someone was breaking into my home. I never believed it was a random robbery; something inside me told me it had been planned—too precise, too deliberate." "thoughts">>
<<addDialogue "" "My parents were found dead. And Angelica... my sister Angelica had vanished without a trace." "thoughts">>
<<addDialogue "" "For months—no, for two years—I followed every lead I could find. Every anonymous call, every rumor, every fragment of hope. But it was all pointless. There were no witnesses, no fingerprints, no DNA... nothing that could move the investigation forward." "thoughts">>
<<addDialogue "" "The police didn’t officially close the case—they archived it. A cold case. On paper, it stayed open. In reality, it meant no assigned detectives, no active searches, nothing but silence. And I was left alone with my grief." "thoughts">>
<<addDialogue "" "From that moment on, my life fell apart. I drowned myself in guilt and alcohol, trying to smother the emptiness inside. I became reckless, crossing lines I once swore I never would. I hurt the people closest to me. Eventually, they kicked me out of the police force." "thoughts">>
<<addDialogue "" "Violet tried to help me. She stayed longer than anyone else would have. But I shut her out, buried myself in my pain, pushed her until she finally walked away. I don’t blame her. No one can hold together someone who insists on falling apart." "thoughts">>
<<addDialogue "" "But even at my worst, some part of me stayed rational. When I finally hit rock bottom, I knew I couldn’t stay there. So I opened a private detective agency—not to start over, but to keep going. To keep searching for justice in a world that had taken everything from me." "thoughts">>
<<addDialogue "" "Maybe it’s redemption. Maybe it’s revenge. Or maybe I’m just a broken woman chasing something she’ll never find." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Wake up|intro1]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Wake up (Skip intro)|SkipIntro]]">>
<<horizontalEnd>>
<<unlockCharacterOnly 7>>
<<set $Lesbian = true>>
<<set $CaseyLesbian = 20>>
<<set $Mpartner = false>>
<<set $Fpartner = true>>
<<set $Solo = false>>
<<dialogue "" "That night, I was working on a simple case with Gabriela Rodríguez. The investigation wasn't complicated, but the lack of a real challenge only made the fatigue more obvious. We had been reviewing reports, discussing potential suspects, and going through notes in a calm, almost routine environment." "thoughts">>
<<addDialogue "" "I never imagined that, while we were so focused on something so mundane, something far darker was happening in my own home." "thoughts">>
<<addDialogue "" "My parents were found dead. And Angelica... my sister Angelica had disappeared without a trace." "thoughts">>
<<addDialogue "" "For months—no, for two years—I chased every lead, every anonymous call, every shadow that even hinted at her. But nothing ever led anywhere. There were no witnesses, no prints, no usable DNA... nothing." "thoughts">>
<<addDialogue "" "The police didn’t exactly close the case. They archived it—classified as a cold case. In theory, it remained open. In practice, it meant no active investigation. No detectives assigned. Just dust gathering on a file nobody wanted to look at anymore." "thoughts">>
<<addDialogue "" "And I was left alone with the grief." "thoughts">>
<<addDialogue "" "From that moment on, my life fell apart. I drowned in guilt and alcohol, trying to numb the emptiness inside. I became reckless, crossed lines I once swore I wouldn't. I hurt people who cared about me. And eventually, they threw me out of the police force." "thoughts">>
<<addDialogue "" "But even in my worst moments, a part of me stayed rational. When I finally hit rock bottom, I knew I couldn’t stay there. So I opened a private detective agency—not to start over, but to keep going. To chase justice in a world that had torn everything from me." "thoughts">>
<<addDialogue "" "Maybe it’s redemption. Maybe it’s revenge. Or maybe I’m just a broken woman chasing something she’ll never find." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Wake up|intro1]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Wake up (Skip intro)|SkipIntro]]">>
<<horizontalEnd>>
<<set $Mpartner = false>>
<<set $Fpartner = false>>
<<set $Solo = true>>
<<set $CaseyHetero = 5>>
<<set $CaseyLesbian = 5>><<dialogue "" "You jolted awake, your breathing ragged, and a deep sadness weighed heavily on your chest. The room was silent, but the echo of the nightmare still lingered in your mind." "description">>
<<addDialogue "Casey" "After all this time, the nightmares still haunt me. But this one… was different. How strange it felt—as if I were explaining my life to someone. It was unsettling, surreal. 'Hah.' Anyway..." "talk">>
<<addDialogue "" "You sit up slowly, the late afternoon air brushing against your bare skin as the sheets slip away, revealing the curves of your body. The soft light of the setting sun streams through the window, tracing every line and casting warm, golden shadows across your form. The quiet rustle of fabric falling to the floor is the only sound as you rise. You glance down at yourself and smirk, a wry chuckle escaping your lips. Stretching lazily, you make your way toward the closet." "description">>
<<addDialogue "" "Well, at least I don’t have to worry about wrinkled clothes." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Get dressed|dressed]]">>
<<addDialogue "" "[[Stay naked|intro3]]">>
<<horizontalEnd>>
<<dialogue "Casey" "Time to stop scandalizing the furniture and find something to wear." "talk">>
<<addDialogue "" "With a sigh, you put on your underwear and then slip into a fitted black t-shirt that feels comfortable and versatile. You grab a pair of dark jeans—durable and practical—and lace up your boots firmly, preparing yourself for whatever lies ahead. You approach the wardrobe and open it, examining the clothing options in front of you. Your gaze settles on two items: a sleek, shiny new black leather jacket with a modern and bold look, and a light brown trench coat, worn by time but familiar, like an old friend that has always been there during the toughest moments." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Black jacket|blackjacketIntro]]">>
<<addDialogue "" "[[Trench coat|trenchcoatIntro]]">>
<<horizontalEnd>>
<<setAvatarDirect "casey2.png">>
<<set $Naked = false>><<dialogue "" "Solitude has its advantages. I fell free..." "thoughts">>
<<addDialogue "" "Just as the thought settles, a sharp pain shoots through your head. It’s sudden and jarring, like a cruel reminder that the peace is fleeting. You press your fingers to your temples, trying to steady the thrum, but the ache lingers, gnawing at the edges of your focus." "description">>
<<addDialogue "" "Damn... my head’s spinning... I need a break. I’d better take one of my pills." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Take the pills|intropills]]">>
<<horizontalEnd>>
<<set $wakeup = 1>>
<<dialogue "" "You reach for the black leather jacket you recently bought and slip it over your shoulders. The smooth leather feels cool and firm against your skin, settling into place with a reassuring weight. You leave the asymmetrical zipper undone, the sharp collar and metal buttons giving the jacket its bold, unmistakable attitude. Steadying yourself, you adjust the lapels and take a moment to look in the mirror—preparing for whatever comes next." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Put on the trench coat|trenchcoatIntro]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<if $introcase isnot 2>>
<<addDialoguePos "" "[[Get moving|intro2]]" "center">>
<<else>>
<<addDialoguePos "" "[[Get moving|introflat]]" "center">>
<</if>>
<<setAvatarDirect "caseyjacket.png">>
<<set $CaseyCoat = false>>
<<set $CaseyJacket = true>>
<<set $Naked = false>>
<<script>>
window.ClothingSystem.setClothes('jacket');
<</script>>
<<dialogue "" "With quiet resolve, you reach for the light brown trench coat and slip it on. The worn fabric rests against your shoulders with a familiar, almost comforting weight. You leave the buttons undone, the coat draping loosely around you like an old, reliable companion. Steadying yourself, you adjust the collar and take a moment to look in the mirror—preparing for whatever comes next." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Put on the jacket|blackjacketIntro]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<if $introcase isnot 2>>
<<addDialoguePos "" "[[Get moving|intro2]]" "center">>
<<else>>
<<addDialoguePos "" "[[Get moving|introflat]]" "center">>
<</if>>
<<setAvatarDirect "caseycoat.png">>
<<set $CaseyCoat = true>>
<<set $CaseyJacket = false>>
<<script>>
window.ClothingSystem.setClothes('coat');
<</script>>
<<script>>
hideCharacterMenu();
<</script>>
<<script>>
const myThreePics = [
'img/picture1.png',
'img/picture2.png',
'img/picture3.jpg'
];
window.SlideshowSystem.create('my-slideshow', myThreePics, {
interval: 4000,
loop: true,
fadeTransition: true,
fadeDuration: 1000,
autoStart: true,
target: 'body'
});
<</script>>
<div><a tabindex="0" role="button" id="save-button">Continue</a>">>
<div>[[New story|introA]]">><<switch visited()>>
<<case 1>>
<<dialogue "" "The room is small but gets the job done. There’s a desk crammed with a computer, an old printer, and a stack of papers that could use some organizing. Next to it sits the bed, with a blanket tossed on haphazardly, and a wardrobe with doors that don’t quite line up. A desk lamp throws off just enough light to keep things functional, but the whole place has a chaotic, lived-in feel." "description">>
<<addDialogue "Casey" "Everything I need to work and crash." "talk">>
<<addDialogue "" "Productivity and comfort, all in one convenient package." "thoughts">>
<<addDialogue "Casey" "Yeah, right. That’s what the guy who rented me this place called it." "talk">>
<<default>>
<<dialogue "" "The room is small but functional: a desk with everything you need to work shoved right up next to the bed. It’s supposed to combine productivity and comfort in one space—or at least that’s what you tell yourself." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Check the desk|checkdesk]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<horizontalStart>>
<<addDialoguePos "" "[[Go to entrance|introflat2]]">>
<<addDialoguePos "" "[[Go to bathroom|introtoilet]]">>
<<horizontalEnd>>
<<if $CaseyJacket is true && $introphoto isnot true>>
<<unlockPhoto 1 5>>
<<set $introphoto = true>>
<</if>>
<<if $CaseyCoat is true && $introphoto isnot true>>
<<unlockPhoto 1 4>>
<<set $introphoto = true>>
<</if>><<dialogue "" "You feel a bit dizzy, with a slight headache that won’t go away. It's an uncomfortable sensation, like the fatigue from a long day finally catching up with you. You’ve barely gotten half an hour of rest in the car, and it doesn't seem to have been enough after two nights spent chasing Gulliver." "description">>
<<addDialogue "Casey" "Damn Gulliver... my head’s spinning... I need a break. I’d better take one of my pills." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Take the pills|intropills]]">>
<<horizontalEnd>>
<<set $wakeup = 1>>
<<if $CaseyJacket is true && $introphoto isnot true>>
<<unlockPhoto 1 5>>
<<set $introphoto = true>>
<</if>>
<<if $CaseyCoat is true && $introphoto isnot true>>
<<unlockPhoto 1 4>>
<<set $introphoto = true>>
<</if>>
<<script>>
window.decreaseSanity(10);
<</script>><<dialogue "" "You open one of the drawers and grab a bottle of pills. You look inside; you take the the Calming Pills from inside. Then you look at the table searching for some water, but you only see an empty glass and a bottle of whiskey close to you. There's still a bit of the alcoholic substance left inside." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Drink whisky|introwhisky]]">>
<<addDialogue "" "[[Drink water|intropills2]]">>
<<horizontalEnd>>
<<script>>
window.addItemFromDatabase('pills', 5);
<</script>><<dialogue "" "The desk shows its age, with a surface scratched and dented from years of wear. A modest computer sits on one side. Scattered papers, a coffee mug with a faint ring at the bottom, and a cracked pen holder clutter the space. The drawers are slightly crooked, hinting at frequent use." "description">>
<<addImage "img/events/homedesk.png">>
<<horizontalStart>>
<<addDialogue "" "[[Open the drawer|introgun]] [[Check the computer|introsave2]]">>
<<addDialogue "" "[[Computer|introsave2]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Leave desk|introflat]]" "center">>
<<if $Naked is true>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "The entrance to the apartment is tight, just wide enough to squeeze through with your life in tow. The worn wooden floor runs into a short hallway that leads to the office and bathroom. Against one wall sits an entry table piled with the usual clutter—keys, mail, an unlit lamp that hasn’t been touched in who knows how long. The weak light from a single ceiling fixture barely pushes back the shadows, leaving the space feeling dim and dated, like it hasn’t seen an update in years. It’s a plain, no-frills entryway—a fitting prelude to the rest of your life right now." "description">>
<<default>>
<<dialogue "" "The entrance to the apartment is narrow, barely enough room to step inside with everything you’re carrying—both physical and otherwise." "description">>
<<addDialogue "" "Better get some clothes on before I take this show out into the street." "talk">>
<</switch>>
<<else>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "The entrance to the apartment is narrow, just wide enough to get you from the hallway into the rest of your life. The wooden floor shows signs of wear as it leads into a short hallway that opens to the office. An entry table sits pushed against the wall, cluttered with keys, unopened mail, and a lamp that hasn’t been turned on in ages. The single ceiling light doesn’t do much to brighten the space, leaving everything cast in a muted, somewhat gloomy glow. It’s a simple, unremarkable entryway that matches the rest of the place—a constant reminder of where you’re at." "description">>
<<default>>
<<dialogue "" "The entrance to the apartment is narrow, just enough room to step inside and close the door behind you." "description">>
<</switch>>
<</if>>
<<if $Naked is true>>
<<horizontalStart>>
<<addDialogue "" "[[Check drawers|introbatteries]]">>
<<addDialogue "" "[[Put your clothes on|dressed]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialoguePos "" "[[Go to office|introflat]]" "center">>
<<horizontalEnd>>
<<else>>
<<if $introgun is true>>
<<horizontalStart>>
<<addDialogue "" "[[Check drawers|introbatteries]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Leave the apartment|intropasillo]]">>
<<addDialogue "" "[[Go to office|introflat]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Check drawers|introbatteries]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Go to office|introflat]]" "center">>
<</if>>
<</if>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "The bathroom is small but functional. A water-stained mirror hangs above the sink, alongside some scattered toiletries. The shower, with a half-rotten plastic curtain hanging precariously, and the worn-out tiled floor, give the bathroom an almost unsettling feel. In one corner, a small medicine cabinet is closed, its contents likely forgotten, but always within reach when needed." "description">>
<<default>>
<<dialogue "" "The bathroom is small but functional. A water-stained mirror hangs above the sink, alongside some scattered toiletries." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Check the mirror|intromirror]]">>
<<addDialogue "" "[[Check the cabinet|intromedkit]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|introflat]]" "center">><<switch visited()>>
<<case 1>>
<<dialogue "" "You step closer to the mirror, your fingers grazing over your hair as you adjust it with a slow, deliberate motion. A fleeting touch on your skin, making sure every detail is perfect. You catch your reflection—eyes lingering a moment longer than usual—before you nod to yourself, feeling the confidence settle in. You're ready, but the allure lingers." "description">>
<<dialogue "Casey" "There's no time for more..." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Bathroom|introtoilet]]">>
<<horizontalEnd>>
<<case 2>>
<<addDialogue "" "You meet your own gaze in the mirror, your fingers lightly brushing through your hair, ensuring everything is just right before you move on." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Bathroom|introtoilet]]">>
<<horizontalEnd>>
<<default>>
<<dialogue "" "You glance at your reflection, making sure everything is in place before moving on." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Bathroom|introtoilet]]">>
<<horizontalEnd>>
<</switch>><<if $intromedkit is true>>
<<dialogue "" "There’s nothing else that could be of use." "description">>
<<addImage "img/events/homecabinet.png">>
<<horizontalStart>>
<<addDialogue "" "[[Back|introtoilet]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "You open the bathroom cabinet and find 3 packaged bandages, along with a small, somewhat outdated first aid kit. The kit is slightly Rust, but it seems to still have the essentials: some band-aids, disinfectant, and a couple of other things. It's not much, but it could come in handy if something comes up." "description">>
<<addDialogue "Casey" "Who knows, this could all be useful." "talk">>
<<addImage "img/events/homecabinet.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take items|intromedkit2]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|introtoilet]]" "center">>
<</if>>
<<if $introbatteries is true>>
<<dialogue "" "You open the drawer again. There's nothing left inside, just emptiness." "description">>
<<else>>
<<dialogue "" "You open the drawers of the entrance table. The only thing inside is a pack of cheap batteries. Nothing else interesting. A faint smell of dust rises as you close the drawer." "description">>
<</if>>
<<addImage "img/events/homedrawers.png">>
<<if $introbatteries isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Take batteries|introbatteries2|?!canPickupBattery]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|introflat2]]" "center">>
<<switch visited()>>
<<case 1>>
<<dialogue "" "You step out of the apartment, and the door closes with a soft click behind you. The hallway is dimly lit, with the scent of old wood and dust in the air. Your footsteps resonate softly on the floor as you make your way toward the stairs." "description">>
<<addDialogue "" "As you descend toward the street, you notice that one of your neighbor's doors is slightly ajar. As you pass by the door, you think you hear faint, distant screams—almost imperceptible—reaching your ears. They sound like a woman's." "description">>
<<addDialogue "Casey" "What was that?" "talk">>
<<addDialogue "" "Sneaking in just like that would be intrusive, but what if someone needs help?" "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Check neighbours|neighbourspy]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<horizontalStart>>
<<addDialogue "" "[[Go to street|introstreet]]">>
<<addDialogue "" "[[My apartment|introflat2]]">>
<<horizontalEnd>>
<<case 2>>
<<if $neighbourspy is true>>
<<dialogue "" "As you pass through the hallway again, your steps feel unsteady on the wooden floor. Your eyes settle on the neighbors' door, now firmly closed. You feel a slight shiver as a memory slips into your mind: the unexpected sight you encountered upon entering." "description">>
<<addDialogue "" "Why did I have to do it? I shouldn't have done it... but now it's in my head forever." "thoughts">>
<<addDialogue "" "You pause for a moment in front of the door, the echo of your own thoughts pounding in your head. Did you really enter out of curiosity, or was it just an accident? The doubt torments you as you move toward the stairs, trying to push that image from your mind." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go to street|introstreet]]">>
<<addDialogue "" "[[My apartment|introflat2]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "You cross the hallway again, your steps faintly echoing on the wooden floor. As you pass in front of the neighbor's door, you notice that it's now closed." "description">>
<<addDialogue "" "It was probably nothing." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Go to street|introstreet]]">>
<<addDialogue "" "[[My apartment|introflat2]]">>
<<horizontalEnd>>
<</if>>
<<default>>
<<dialogue "" "You cross the hallway again, your steps faintly echoing on the wooden floor." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go to street|introstreet]]">>
<<addDialogue "" "[[My apartment|introflat2]]">>
<<horizontalEnd>>
<</switch>><<dialogue "" "As you get closer the room, the screams break the silence once again, but you notice a subtle change in their tone. Although they clearly express pain, they also carry a faint hint of pleasure, like distant echoes of something you had forgotten. Even if only for a moment, they remind you of a time that now feels very far away." "description">>
<<addDialogue "Casey" "Oh wow... I think it's..." "talk">>
<<addDialogue "" "It doesn’t seem like anyone needs help. I should leave." "thoughts">>
<<addDialogue "" "You try to turn and leave, but the moans hit you like a punch straight to the chest. A mix of anger and uncontrollable desire begins to burn inside you, rooting you to the spot as if chains were holding you in place. The door is slightly ajar, and no matter how hard you fight the urge, you can’t stop yourself from peeking inside." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Glance|peekintro]]">>
<<horizontalEnd>>
<<unlockCharacterOnly 12>><<if $Rodriguezintro is true>>
<<dialogue "" "You head down the stairs of your building, the humid evening air clinging to your skin like a damp shirt. It’s hot—sticky and uncomfortable, but not enough to knock you back. The main door creaks as you push it open, and a slight breath of cooler air from outside offers a small break. That’s when you see her." "description">>
<<addDialogue "" "She’s leaning against a lamppost a short distance away, fiddling with her phone and wearing a small smile. Gabriella—your old friend. A breeze tugs at the strands of her high ponytail, and the fading sunlight catches in her dark hair, giving her a relaxed, the time you spent apart never happened." "description">>
<<addDialogue "" "Gabriella glances up, spots you, and her face lights up. It’s like seeing you there puts everything right again. She lets out a quick laugh, waves, and steps away from the lamppost, walking toward you." "description">>
<<addDialogue "Gabriela Rodriguez" "I was just about to text you!" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Hey Gabi!|introgabifriend]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/gabriela2.png" "Gabriela Rodriguez">>
<<else>>
<<dialogue "" "You head down the stairs of your building, stepping out into evening air thick with humidity that clings to your skin like a damp shirt. It’s hot and sticky, but not enough to be unbearable—just enough to make you feel it. The main door creaks as you push it open, and a faint breath of cooler air from outside offers a small relief." "description">>
<<addDialogue "" "It doesn’t take long to spot her. She’s leaning against a lamppost a short distance away, arms crossed, staring down at the ground. Gabriela—your former colleague. It’s been two years since you last spoke, and even after the fight that drove you apart, there’s still something unmistakably her about the way she carries herself. But now there’s a quiet, restrained calm surrounding her. A breeze pulls at the loose strands of her high ponytail, catching the fading sunlight in her dark hair." "description">>
<<addDialogue "" "She didn’t call. She didn’t text. And yet here she is, waiting like she’s been unable to leave something unsettled. Gabriela looks up and sees you. For a moment, everything seems to pause. There’s a rawness in her eyes—a break in the tough front she usually keeps up—something you weren’t expecting. “Casey…” she starts, her voice carrying a mix of familiarity and something harder to pin down." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Gabi...|introgabinofirend]]">>
<<horizontalEnd>>
<</if>>
<<if $introgun is true>>
<<dialogue "" "You open the drawer again, but there’s nothing left of interest. The flashlight and gun are already in your hands. The drawer is now bare, the faint smell of dust lingering. Time to move on." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|introflat]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "You approach the desk and open the drawer cautiously, letting your fingers explore its contents until you find what you’re looking for. You grip it with practiced familiarity, feeling the weight that has always been a part of you. You carefully draw it from its holster, making sure it’s ready. The sharp click of the safety switching off reminds you that the case has only just begun, and nothing here will be easy." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take the gun and bullets|introgun2]]">>
<<horizontalEnd>>
<</if>>
<<dialogue "" "The computer whirs softly as it powers on, the glow of the screen flickering weakly in the dim light. The interface is bare, a relic of simpler times. The soft hum of the machine fills the silence, offering a moment of quiet focus." "description">>
<<addImage "img/events/homedesk.png">>
<<horizontalStart>>
<<addDialogue "" "<div class='main-menu-btn' id='save-button'>Save/Load</div>">>
<<horizontalEnd>>
<<addDialoguePos "" "[[Go back|checkdesk]]" "center">>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<if $IntroComplete is true>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('newstart.mp3', 4000);
}, 1000);
<</script>>
<<set $IntroComplete = false>>
<</if>>
<<dialogue "" "You grab the bandages and the medicine and place them in your backpack." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|introtoilet]]">>
<<horizontalEnd>>
<<script>>
window.addItemFromDatabase('medkit', 1);
window.addItemFromDatabase('bandages', 3);
<</script>>
<<set $intromedkit = true>><<dialogue "" "You grab the batteries and put them in your backpack." "description">>
<<addDialogue "Casey" " Well, some batteries could come in handy, especially if you're heading to a dark, abandoned place." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|introflat2]]">>
<<horizontalEnd>>
<<addItem "battery" 10>>
<<set $introbatteries = true>><<dialogue "" "You grab the bottle of whiskey and take a swig, the liquid burning your throat as it goes down." "description">>
<<addDialogue "Casey" " ¡Cof, cof!" "talk">>
<<if $Naked is true>>
<<addDialogue "" "I know this only takes me further from what I really want. It's better not to fall back into those old habits, or everything I've rebuilt will crumble." "thoughts">>
<<addDialogue "" "As you think, your hand glides gently over your body, brushing across your chest before slowly descending." "description">>
<<addDialogue "" "Hmm... I didn’t realize how desperate I was for action. It’s probably best if I focus on the Gulliver rescue case, but I’m so excited... I don’t even remember the last time." "thoughts">>
<<else>>
<<addDialogue "" "A momentary relief. But I know this only takes me further from what I really want. It's better not to fall back into those old habits, or everything I've rebuilt will crumble. It’s probably better I get to work on the Gulliver rescue case. The client is getting quite restless." "thoughts">>
<</if>>
<<if $Naked is true>>
<<horizontalStart>>
<<addDialogue "" "[[Descend the hand|intromasturbation]]">>
<<addDialogue "" "[[Check the missing poster|introcaseold]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Check the missing poster|introcaseold]]">>
<<horizontalEnd>>
<</if>>
<<script>>
window.HealthSanitySystem.removeHealth(10)
<</script>>
<<dialogue "" "You push the bottle of alcohol aside with firm determination, making it clear you don’t need it. Instead, you grab the empty glass and step toward the sink in your space, half office, half bedroom. The apartment is tiny, everything within arm’s reach. You fill the glass with cold tap water, watching it rise clean and clear. It offers a calm that alcohol never could. You lift it slightly, steadying yourself before taking a sip." "description">>
<<if $Naked is true>>
<<addDialogue "" "It's better not to fall back into old habits. Every time you give in, you move further away from the person you're trying to be. Today, control is stronger than temptation." "thoughts">>
<<addDialogue "" "As you think, your hand glides gently over your body, brushing across your chest before slowly descending." "description">>
<<addDialogue "" "Hmm... I didn’t realize how desperate I was for action. It’s probably best if I focus on the Gulliver rescue case, but I’m so excited... I don’t even remember the last time." "thoughts">>
<<else>>
<<addDialogue "" "It's better not to fall back into old habits. Every time you give in, you move further away from the person you're trying to be. Today, control is stronger than temptation. It’s probably better I get to work on the Gulliver rescue case. The client is getting quite restless." "thoughts">>
<</if>>
<<if $Naked is true>>
<<horizontalStart>>
<<addDialogue "" "[[Descend the hand|intromasturbation]]">>
<<addDialogue "" "[[Check the missing poster|introcaseold]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Check the missing poster|introcaseold]]">>
<<horizontalEnd>>
<</if>>
<<dialogue "" "You lie down on your bed, letting the softness of the sheets wrap around you. Your fingers begin to glide over your skin, first slowly, but gradually picking up speed in an attempt to relieve a pent-up tension. You close your eyes, allowing your mind to wander through fleeting sensations and thoughts." "description">>
<<addDialogue "" "Oh... yes, right there... lick right there..." "thoughts">>
<<addDialogue "" "Time seemed to stand still for a moment, as if the outside world didn’t exist. A gentle current of electricity ran through your body, making you arch your back slightly." "description">>
<<addDialogue "Casey" "Oh..! Hmm..." "talk">>
<<addVideo "media/casey/pussy.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Faster|introPhone]]">>
<<horizontalEnd>>
<<unlockVideo 1 1>> <<dialogue "" "You stare at the sheet in front of you. A gray cat with yellow eyes stares back from the center, with the word 'Missing' above it. The $3,000 reward is written in bold—way too high for just a lost cat." "description">>
<<addDialogue "" "$3,000 for a cat? That can’t be right. A lost cat doesn’t usually fetch that kind of money. There’s got to be more going on here." "thoughts">>
<<addDialogue "Casey" "Why am I even curious about this? It’s just a cat." "talk">>
<<addDialogue "" "Maybe it’s the reward. Or maybe... I’m just drawn to the fact that something about this doesn’t sit right. If I remember correctly, the owner’s name is Sofia Bennett..." "thoughts">>
<<addDialogue "Casey" "If my guess is right, it’s just a cat that got out." "talk">>
<<addDialogue "" "With a sigh, you leave the paper on the desk and glance at the phone, trying to figure out your next move." "description">>
<<addDialogue "" "The details are bare: the cat, the reward, and an address. Nothing unusual at first glance. But that money... that’s what makes me uneasy." "thoughts">>
<<addImage "img/documents/guli.png">>
<<horizontalStart>>
<<addDialogue "" "[[Continue reading|introcaseold2]]">>
<<horizontalEnd>>
<script>
window.addDocumentWithNotification(
"missing_poster",
"Missing Poster",
"Missing cat flyer.",
"",
"photo",
"📋",
{
imagePath: "img/documents/guli.png",
location: "Taken from a lamppost in the street",
photographer: "Sofia Bennett",
frontDescription: "An informational flyer about a missing cat named Gulliver that you picked up from a lamppost."
}
);
</script>
<<script>>
playSoundDirect('page.mp3');
<</script>>
<<set $gulidocument = true>>
<<dialogue "" "Just as the heat between you is starting to build, the shrill ring of the phone cuts through the moment, dragging you back to reality." "description">>
<<addDialogue "Casey" "Shit! That goddamn phone..." "talk">>
<<addDialogue "" "You see an unknown number on the screen. Something tells you this isn’t a wrong number or a telemarketer. You pick up and, before you can get a word out, a deep, authoritative voice cuts through the line. 'Casey?'" "description">>
<<horizontalStart>>
<<addDialogue "" "[[Detective Casey speaking|introPhone2]]">>
<<horizontalEnd>>
<<timed 2s>>
<<script>>
playSoundDirect('codec.mp3');
<</script>>
<</timed>>
<<timed 4s>>
<<script>>
playSoundDirect('codec.mp3');
<</script>>
<</timed>>
<<timed 6s>>
<<script>>
playSoundDirect('codec.mp3');
<</script>>
<</timed>>
<<timed 8s>>
<<script>>
playSoundDirect('codec.mp3');
<</script>>
<</timed>><<dialogue "" "Suddenly, the sound of the phone pulls you from your thoughts. Seeing the unknown number, your instinct tells you it's something important. You answer, and before you can say anything, you hear, Casey? a deep, authoritative voice says." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Detective Casey speaking|introPhone2]]">>
<<horizontalEnd>><<dialogue "Casey" "Private Detective Casey. What can I do for you?" "talk">>
<<timed 100ms>>
<<vdialogue "Mayor Quentin" "Casey? $McName Casey? It’s Quentin—the mayor. You remember me, right?" "talk">>
<<addDialogue "" "The damn mayor. What the hell does he want? I should just hang up." "thoughts">>
<<addDialogue "Casey" "Yeah, it’s you, Quentin. How long’s it been? Tell me why I shouldn’t hang up right now." "talk">>
<<addDialogue "Mayor Quentin" "Please, Casey, just hear me out. This is important. I’m asking for your help—not just for me, but for the whole damn city." "talk">>
<<addDialogue "" "Here it comes." "thoughts">>
<<addDialogue "Casey" "You’ve got to be kidding me. Fine. I’m listening." "talk">>
<<addDialogue "" "At least he’s not feeding me any of that polished political bullshit." "thoughts">>
<<addDialogue "Mayor Quentin" "Something’s going on in this city. You’ve probably heard—several girls have gone missing. The families are climbing all over me. I’m drowning here. I need the best to crack this thing, and that used to be you. Before... well, before everything went to hell." "talk">>
<<addDialogue "" "He’s desperate. And he’s running out of options." "thoughts">>
<<addDialogue "Casey" "Before Henry and you forced me out, you mean? And now you’re crawling back because you’re up shit creek with no paddle?" "talk">>
<<addDialogue "Mayor Quentin" "Look, you made some mistakes, but that’s not why I’m calling. I know I screwed you over, and I get that you’ve got every reason to tell me to go to hell. But this isn’t just another case. There are families on the edge—people’s lives hanging in the balance. And frankly, I need to get this under control before it blows up in my face. I don’t know who else I can trust." "talk">>
<<addDialogue "Casey" "And what exactly are you putting on the table?" "talk">>
<<addDialogue "Mayor Quentin" "I’m putting up a hundred grand, Casey. Taxpayer money, sure, but it’s real money—more than you’ve ever pulled on a single case. All I want is for you to solve this thing." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Accept the money|introPhone3]]">>
<<addDialogue "" "[[I don't want your money|introPhone3B]]">>
<<horizontalEnd>>
<</timed>>
<<showNPC "mayor" "img/characters/mayor/mayor.png" "Mayor Quentin">>
<<unlockCharacterOnly 2>><<dialogue "Casey" "I’m not interested, Quentin. I don’t want your money, and I don’t want your case." "talk">>
<<addDialogue "Mayor Quentin" "I get it. But let me put something else on the table. If you take this case, I can pull whatever strings it takes to get your badge back. Getting you reinstated won’t be a problem." "talk">>
<<addDialogue "" "Getting my badge back… That changes everything." "thoughts">>
<<addDialogue "Mayor Quentin" "The latest leads all point to the Charles Francis Psychiatric Hospital on the outskirts of the city. two of our best agents—Dina Carter and Douglas Cohle—went in to investigate and just vanished." "talk">>
<<addDialogue "" "I know Cohle. He’s one of the good ones. Hard to believe he’s gone. Last I heard, he’d joined the FBI. Didn’t realize he was working directly for the mayor. Dina must’ve been his partner." "thoughts">>
<<addDialogue "Casey" "Charles Francis? That place has been a rotting shell for over ten years. I didn’t think anyone gave a damn about it anymore." "talk">>
<<addDialogue "Mayor Quentin" "That’s what I thought too. But these weren’t rookies. If experienced agents like Dina and Rust disappeared in there, something’s seriously wrong. I can’t afford to send in a full raid—not yet. That would turn into a goddamn circus and hit every news channel." "talk">>
<<addDialogue "" "He’s more worried about the headlines than what actually happened." "thoughts">>
<<addDialogue "Casey" "So you think something’s really going on in that place? Or is somebody just jerking us around?" "talk">>
<<addDialogue "Mayor Quentin" "I don’t know. But with all these disappearances and nothing to show for it, we’re running out of time. The election’s breathing down my neck. I need someone who can work quietly, think outside the lines, and actually get results where everyone else has come up empty." "talk">>
<<addDialogue "" "He’s looking for someone he can send in and forget about if it goes south. But I’ll admit it—this case has me hooked." "thoughts">>
<<addDialogue "Casey" "I’ll check out Charles Francis. If Dina and Rust are still alive, I’ll find them." "talk">>
<<addDialogue "Mayor Quentin" "I knew you’d come through. I’ll get you everything we have—the files, reports, whatever’s available. And I’ll make sure your badge is back in your hands by tomorrow." "talk">>
<<addDialogue "Casey" "Good. I’m not looking to chase my tail and end up with nothing." "talk">>
<<addDialogue "Mayor Quentin" "This can’t wait, Casey. You need to move now. And this stays completely off the books—no one else can know you’re working this." "talk">>
<<addDialogue "Casey" "Understood." "talk">>
<<addDialogue "Mayor Quentin" "Don’t screw this up." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Hang up the phone|introcase]]">>
<<horizontalEnd>>
<<showNPC "mayor" "img/characters/mayor/mayor.png" "Mayor Quentin">>
<<set $introcase = 1>>
<<set $InvestigatorRoad += 1>><<dialogue "Casey" "Alright, Quentin. You’ve got my attention. I’ll take the case. But that money better be as good as you’re saying it is, and I want my badge back too." "talk">>
<<addDialogue "Mayor Quentin" "You won’t regret this. I’m counting on you, Casey. Solve this, and I’ll make damn sure you get your badge back. I’ve already sent you an advance to get started." "talk">>
<<addDialogue "" "Straight to business. That’s how I like it." "thoughts">>
<<addDialogue "Casey" "Then let’s cut the bullshit. What exactly are we dealing with here?" "talk">>
<<addDialogue "Mayor Quentin" "The latest intel points to the Charles Francis Psychiatric Hospital on the edge of the city. This is bad. two of our best agents—Dina Carter and Douglas Cohle—went in to investigate and never came out." "talk">>
<<addDialogue "" "I know Cohle. He’s one of the good ones. Hard to believe he’s gone. Last I heard, he’d gone federal with the FBI. Didn’t realize he was working directly for the mayor. And Dina was his partner." "thoughts">>
<<addDialogue "Casey" "Charles Francis? That shithole’s been abandoned for over ten years. I didn’t think anyone gave a damn about it anymore." "talk">>
<<addDialogue "Mayor Quentin" "That’s what I thought too. But these weren’t rookies. If experienced agents like Dina and Rust disappeared in there, something’s seriously fucked up. We sent a team in after them—came up empty. But I’ve got a gut feeling there’s something we’re missing, something they didn’t find." "talk">>
<<addDialogue "" "Typical. Throwing around hunches because he’s got nothing else." "thoughts">>
<<addDialogue "Casey" "So you think the hospital’s actually involved? Or is someone just fucking with us?" "talk">>
<<addDialogue "Mayor Quentin" "I don’t know. But with all these disappearances and no answers, we’re running out of time. I need someone who can think differently—who can figure out what everyone else has missed." "talk">>
<<addDialogue "Casey" "I’ll check it out. This isn’t about the money. If Dina and Rust are still alive, I’ll find them." "talk">>
<<addDialogue "Mayor Quentin" "I knew I could count on you. I’ll get you everything we’ve got—files, raid reports, all of it." "talk">>
<<addDialogue "Casey" "Good. I’m not planning on hitting another dead end." "talk">>
<<addDialogue "Mayor Quentin" "This can’t wait. You need to move now. And this stays completely off the books—no one else can know you’re working this." "talk">>
<<addDialogue "Casey" "Understood." "talk">>
<<addDialogue "Mayor Quentin" "Don’t fuck this up, Casey." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Hang up the phone|introcase]]">>
<<horizontalEnd>>
<<showNPC "mayor" "img/characters/mayor/mayor.png" "Mayor Quentin">>
<<set $introcase = 1>>
<<set $MoneyElection = 1>>
<<set $InvestigatorRoad -= 1>>
<<set $Corruption += 1>>
<<addMoney 1000 "Added from the Mayor">>
<<dialogue "" "The mayor hangs up, and you grip the phone tightly in your hand. Adrenaline surges through you, stirring a feeling you thought had been buried for good. Maybe—just maybe—it’s time to step back into the person you used to be, even if the road ahead looks like a goddamn mess. You let out a slow breath, roll your shoulders back, and force your mind to focus on what’s coming." "description">>
<<addDialogue "" "This isn’t going to be easy. When has it ever been? Two agents gone, a case everyone else wants to pretend doesn’t exist, and me—chasing some kind of redemption. It sounds like the setup for a bad movie, but here we are." "thoughts">>
<<addDialogue "" "You pace around the room, trying to sort through the chaos in your head and put it into words." "description">>
<<addDialogue "Casey" "Charles Francis. An abandoned psychiatric hospital. Young women disappearing. It all adds up to a shitstorm waiting to happen, but I can’t walk away from it. If there’s even a chance to set things right—to get back to being the person I was—then I don’t have a choice. I have to do this." "talk">>
<<if $Naked is true>>
<<addDialogue "" "You stop in front of the mirror, staring at your naked body and fighting the temptation to lose yourself in the moment." "description">>
<<addDialogue "Casey" "As much as I’d like to keep going, that’s over for now. It’s time to lock in and focus." "talk">>
<<else>>
<<addDialogue "" "You stop in front of the mirror and study your reflection. There’s resolve in your eyes, but it’s undercut by a shadow of uncertainty." "description">>
<<addDialogue "Casey" "You ready for this? Because it doesn’t look like anyone else is." "talk">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Check the desk|checkdesk]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<horizontalStart>>
<<addDialoguePos "" "[[Go to entrance|introflat2]]">>
<<addDialoguePos "" "[[Go to bathroom|introtoilet]]">>
<<horizontalEnd>>
<<set $notes = 1>>
<<set $introcase = 2>>
<<script>>
addQuestWithStages(
"Departure",
"Check the drawer in your desk at home and gather your essential equipment. You'll need to be properly prepared for what lies ahead, and travel to the Charles Francis Hospital.",
[
"Get your equipment.",
"Travel to Charles Francis Hospital.",
],
"📋",
"main",
"departure", // Custom ID
"img/quest.png" // Quest image
);
// Add stage images so completion notifications show the quest image
if (window.questSystem && window.questSystem.quests["equipament"]) {
window.questSystem.quests["equipament"].stageImages = [
"img/quest.png", // Stage 1
];
}
State.variables.captainQuestId = "equipament";
<</script>><<dialogue "" "You spot a flashlight tucked in the back of the drawer. It's small but solid, the kind of tool that survives more than it should. You pick it up, the cool metal firm against your fingers as you twist the cap to check the batteries. Still charged. Reliable. With the gun in one hand and the flashlight in the other, you close the drawer and steady yourself—ready to face whatever waits ahead." "description">>
<<addDialogue "Casey" "This flashlight’s definitely going to come in handy." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Back|introflat]]">>
<<horizontalEnd>>
<<script>>
window.gameState.showLanternRow = true;
const lanternRowEl = document.getElementById('lantern-row');
if (lanternRowEl) {
lanternRowEl.style.visibility = 'visible';
lanternRowEl.style.display = 'flex';
lanternRowEl.classList.remove('slide-hidden');
console.log('Removed slide-hidden class and set visible');
} else {
console.log('ERROR: lantern-row element not found!');
}
<</script>>
<<enableMenu>>
<<script>>
completeQuestStage("departure");
<</script>>
<<if $FlashlightTutorial isnot true>>
<<set $FlashlightTutorial = true>>
<div id="flashlightTutorialModal" class="modal">
<div class="modal-content">
<span class="close-button" onclick="document.getElementById('flashlightTutorialModal').style.display='none'">×</span>
<h2>Flashlight Tutorial</h2>
<p><strong>Goal:</strong> Use the flashlight to improve accuracy in dark areas and discover hidden objects.</p>
<div class="modal-section">
<div class="modal-column">
<strong>Controls:</strong>
<ul>
<li>Click on the flashlight icon in the player menu on the left side of the screen to illuminate dark areas in the game.</li>
<li>The flashlight has limited battery life. You will need batteries to recharge it.</li>
</ul>
</div>
<div class="modal-column">
<strong>Additional Tips:</strong>
<ul>
<li>There are three types of batteries: Cheap, Normal, and Duracell. Each battery type has a different duration, with higher-quality batteries lasting longer.</li>
<li>Using the flashlight will help you discover things in the dark. For example, if you enter a room without light, you won't be able to see or interact with anything unless the flashlight is on (You need to turn on the flashlight and re-enter the room).</li>
<li>Use the flashlight in battles to gain an accuracy bonus when shooting.</li>
<li>Be cautious: the flashlight's light attracts enemies, increasing the chance of encounters.</li>
<li>Manage your batteries carefully, as the flashlight is essential in rooms and hallways with low lighting.</li>
</ul>
</div>
</div>
<div style="text-align: center; margin-top: 20px;">
<button id="continueButtonFlashlight" class="continue-button">Continue</button>
</div>
</div>
</div>
<<script>>
$(document).on(':passagedisplay', function () {
// Show modals if they exist in the DOM
if ($("#combatTutorialModal").length) {
$("#combatTutorialModal").css("display", "flex");
}
if ($("#flashlightTutorialModal").length) {
$("#flashlightTutorialModal").css("display", "flex");
}
// Remove existing click handlers and add new ones
$(document).off("click", "#continueButtonCombat, #continueButtonFlashlight, .close-button").on("click", "#continueButtonCombat, #continueButtonFlashlight, .close-button", function () {
// Close the specific modal based on the button clicked
if ($(this).is("#continueButtonCombat") || $(this).closest("#combatTutorialModal").length) {
$("#combatTutorialModal").css("display", "none");
}
if ($(this).is("#continueButtonFlashlight") || $(this).closest("#flashlightTutorialModal").length) {
$("#flashlightTutorialModal").css("display", "none");
}
});
});
<</script>>
<<timed 300ms>>
<<script>>
playSoundDirect('button.mp3');
<</script>>
<</timed>>
<</if>>
<style>
p {
text-align: center;
color: #e9e9e9;
}
b, strong {
font-weight: 700;
color: #d3bd7b;
}
.modal {
position: fixed;
z-index: 99999999;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0, 0, 0, 0.8);
display: flex;
justify-content: center;
align-items: center;
margin: 0;
padding: 0;
}
.modal-content {
background: rgba(20, 20, 20, 0.9);
border: 3px solid #634d23;
border-radius: 5px;
padding: 20px;
max-width: 600px;
max-height: 80vh;
overflow-y: auto;
color: #d9c27e;
font-family: 'Trajan Pro', 'Times New Roman', serif;
}
.modal-content h2 {
text-align: center;
color: #ffcc00;
position: relative;
top: -2em;
margin-bottom: -2em;
}
.close-button {
color: #ffcc00;
float: right;
font-size: 28px;
font-weight: bold;
cursor: pointer;
position: relative;
top: -1.7em;
}
.modal-section {
display: flex;
flex-wrap: wrap;
}
.modal-column {
flex: 1;
min-width: 290px;
padding: 38px;
margin-bottom: -5em;
margin-top: -3em;
color: #e9e9e9;
}
.modal-content ul {
list-style-type: disc;
padding-left: 20px;
line-height: 1.6;
}
.continue-button {
padding: 10px 20px;
background-color: #3e3423;
color: #d9c27e;
border: 1px solid #634d23;
border-radius: 3px;
cursor: pointer;
font-family: 'Trajan Pro', 'Times New Roman', serif;
font-size: 16px;
transition: all 0.2s;
text-shadow: 1px 1px 1px #000;
}
.continue-button:hover {
background-color: #3e3423;
}
</style>
<<script>>
UIAnimations.showLantern();
<</script>>
<<script>>
UIAnimations.showBatteryQuickslot();
<</script>>
<<set $introgun = true>><<dialogue "" "The scene before you is like a magnet for your senses. You try to look away, but your eyes remain locked, both fascinated and horrified. Each moan scrapes against your nerves like a match striking sandpaper, igniting a fire you shouldn't feel in a place like this. You swallow hard, trying to smother that uncomfortable heat, that misplaced desire that makes you hate yourself a little." "description">>
<<addDialogue "" "This isn't right." "thoughts">>
<<addDialogue "" "But you can't help but look again." "description">>
<<addVideo "media/others/54.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Look again|peekintro1]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<<unlockVideo 12 1>> <<addDialogue "" "Finally You shake your head and take a step back, snapping yourself out of the trance as if breaking a spell." "description">>
<<addDialogue "" "I need to leave." "thoughts">>
<<addDialogue "" "With a mix of relief and shame, you turn and quietly head for the exit." "description">>
<<addVideo "media/others/55.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Leave stealthily|peekintro2]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<<unlockVideo 12 2>> <<addDialogue "" "You're about to walk away when, suddenly, the moans intensify. Your heart leaps, and you feel a shiver inside. You try to ignore the sound, but you can't; each moan makes you shiver and triggers an unexpected reaction within you. Your mind begins to imagine, but you force yourself to act immediately, determined to leave before anyone sees you." "description">>
<<addDialogue "Casey" "Dammit! Why did I have to go in there?" "talk">>
<<addDialogue "" "I was just checking to see if someone was in danger. Nothing more than that. It was a mistake. I didn't mean to see this..." "thoughts">>
<<addDialogue "" "You step back from the apartment, covering your face with your hands in shame." "description">>
<<addDialogue "" "You shake your head, trying to clear the image from your mind as you take a few trembling breaths. You then exit the apartment and leave your neighbors behind, forgetting to close the ajar door." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|introstreet]]">>
<<horizontalEnd>>
<<dialogue "Casey" "Hey, Gabi." "talk">>
<<addDialogue "Gabriela Rodriguez" "It’s been a while since we’ve had coffee, right? I figured today would be a good time to catch up—maybe grab a cup and take a walk. How’ve you been?" "talk">>
<<addDialogue "Casey" "It’s only been three days since we last saw each other. You really miss me that much already?" "talk">>
<<addDialogue "Gabriela Rodriguez" "Okay, fine, I might’ve laid it on a little thick. But honestly, coffee with you is never too much. Though I will say, once a week doesn’t really cut it. We should go out more often." "talk">>
<<addDialogue "" "Her energy pulls a smile out of you, but there’s a nagging feeling that this conversation isn’t going to stay as light as it started." "description">>
<<addDialogue "Casey" "Truth is, I wouldn’t mind spending more time together. Work just doesn’t leave much room for anything else." "talk">>
<<addDialogue "Gabriela Rodriguez" "Don’t I know it. I just wrapped up a messy case, and now I’ve been hearing about these women going missing around the city. You know me—I’ve always had a thing for cases like that. I want them to put me on it. It’s exactly the kind of work I’m good at." "talk">>
<<addDialogue "" "You tense up. That’s the same case you’ve been brought in on, but you can’t say a word. The deal you made with Mayor Quentin ties your hands. You keep your expression neutral and focus on listening, trying not to give anything away." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Respond vaguely|FriendGabiNoLie]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/gabriela2.png" "Gabriela Rodriguez">>
<<unlockPhoto 3 3>> <<dialogue "Gabriela Rodriguez" "So there you are. I thought you’d dropped off the face of the earth." "talk">>
<<addDialogue "Casey" "I don’t have time to talk right now, Gabi." "talk">>
<<addDialogue "" "Gabriela’s brow creases, caught off guard by the abruptness. There’s clear concern in her expression, but you keep moving. She watches you go, more unsettled than she’s willing to show. It’s obvious she’s picking up on your agitation, the sense that you’re in a hurry to get somewhere." "description">>
<<addDialogue "Gabriela Rodriguez" "Where are you rushing off to? It’s been two years since I last saw you, and now you’re just blowing past me like this. What’s going on, Casey?" "talk">>
<<addDialogue "" "Her tone softens, like she’s not sure how to approach you, but it’s clear your behavior has her worried." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Keep your distance|introgabinofriend1]] [[Reveal a little|introgabinofriend2]]">>
<<horizontalEnd>>
<<if $CaseyCoat is true>>
<<setAvatarDirect "casey1.png">>
<</if>>
<<showNPC "rodriguez" "img/characters/rodriguez/gabriela.png" "Gabriela Rodriguez">>
<<unlockPhoto 3 2>> <<dialogue "Casey" "It’s nothing worth talking about right now. I don’t have time to get into it." "talk">>
<<addDialogue "" "Gabriela takes a step closer, her worry plain on her face, but you keep walking without breaking stride. She’s not ready to let you brush her off that easily. There’s concern etched into her expression, but she’s struggling to find a way to make you stop and explain yourself. The frustration and unease are clear in her voice." "description">>
<<addDialogue "Gabriela Rodriguez" "Casey, please. I was worried about you. And now here you are, moving like you’re trying to outrun something." "talk">>
<<addDialogue "" "She knows something’s wrong. She just doesn’t have any idea what it is." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Lie|LieToGabi]] [[Be evasive|NoLieToGabi]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/gabriela.png" "Gabriela Rodriguez">><<dialogue "Casey" "I’ve got work, Gabi. This case I’m on—it’s a mess." "talk">>
<<addDialogue "" "Gabriela stares at you, her eyes searching for something more, but you’re not giving her anything else to work with. Worry creases her face, and it’s clear she’s struggling to figure out how to get you to open up." "description">>
<<addDialogue "Gabriela Rodriguez" "Casey, come on, what’s going on? I was worried about you, and now you’re out here moving like you’re trying to outrun something." "talk">>
<<addDialogue "Casey" "Worried? Funny, I didn’t hear a peep from you all this time." "talk">>
<<addDialogue "Gabriela Rodriguez" "Oh, come on, Casey! I was pissed at you. You didn’t even say goodbye when you left. That stung, you know." "talk">>
<<addDialogue "" "She knows something’s off, but she’s got no clue what it really is." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Lie|LieToGabi]] [[Be evasive|NoLieToGabi]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/gabriela1.png" "Gabriela Rodriguez">>
<<dialogue "Casey" "I’m sure someone good will pick it up. The city can’t just sit on something like this." "talk">>
<<addDialogue "" "Gabriela narrows her eyes a little, studying your face like she’s trying to spot the lie you’re not quite telling." "description">>
<<addDialogue "Gabriela Rodriguez" "Someone good, huh? Like… you?" "talk">>
<<addDialogue "Casey" "I’m just saying—don’t worry about it. It’ll get handled." "talk">>
<<addDialogue "Gabriela Rodriguez" "Relax, I’m messing with you. But seriously, you look like you need a coffee. Come on, five minutes. You can tell me there’s nothing wrong all you want, but your face is screaming the opposite." "talk">>
<<addDialogue "Casey" "I appreciate it, Gabi, I really do. But I can’t right now. Got a case breathing down my neck. You know how it goes—I gotta run." "talk">>
<<addDialogue "Gabriela Rodriguez" "You taught me it’s never too late for coffee, remember? Just ten minutes. Life can’t be all work, Casey." "talk">>
<<addDialogue "Casey" "I know, I know. Rain check, okay? I promise we’ll catch up soon. Right now I really have to move." "talk">>
<<addDialogue "Gabriela Rodriguez" "That busy, huh? Not even a hint? Come on, throw me a bone—what’s got you so wound up this time?" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[We will be partners again|introgabifriendend2]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/gabriela.png" "Gabriela Rodriguez">>
<<dialogue "Casey" "It’s just something I need to take care of. Nothing serious." "talk">>
<<addDialogue "" "She can always tell when I’m holding back. It’s like she sees right through the bullshit before I even finish saying it." "thoughts">>
<<addDialogue "" "Gabriela keeps her eyes fixed on you, and it’s clear from her expression that she’s not buying what you just said." "description">>
<<addDialogue "Gabriela Rodriguez" "I know you, Casey. And I can tell when you’re keeping something from me. I don’t like it when you shut me out like this. Just tell me what’s going on." "talk">>
<<addDialogue "" "Her words come straight from concern, without any pretense. But the mayor’s call weighs heavily on you. Gabriela has no idea what you’ve gotten yourself into, and there’s no way you can tell her." "description">>
<<addDialogue "" "I need to be direct with her." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Be direct|introgabinofriendend]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/gabriela.png" "Gabriela Rodriguez">>
<<dialogue "Casey" "I can’t tell you more than that. It’s complicated." "talk">>
<<addDialogue "" "Gabriela locks eyes with you, her gaze steady and unyielding. She crosses her arms, frustration clear on her face. She’s not about to let you brush her off that easily." "description">>
<<addDialogue "Gabriela Rodriguez" "Complicated? Don’t shut me out like this, Casey. It’s been two years—two years where I didn’t hear a damn thing from you. And now that I finally run into you, you won’t even tell me what’s going on. You’re running from something—I can see it. But if you keep pushing me away, there’s nothing I can do to help you." "talk">>
<<addDialogue "" "I need to level with her—at least to some degree." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Be direct|introgabinofriendend]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/gabriela.png" "Gabriela Rodriguez">><<dialogue "Casey" "Look, I can’t stay here. I’ve got a case I need to handle, and that’s all I can tell you. If I could say more, I would, but I can’t." "talk">>
<<addDialogue "" "Gabriela goes quiet for a moment, doubt clear on her face. But she’s not about to let you walk away without a fight." "description">>
<<addDialogue "Gabriela Rodriguez" "I’m not going to just sit here knowing you’re about to walk into something dangerous by yourself. Let me come with you. You know I’ve always had your back." "talk">>
<<addDialogue "Casey" "I can’t do that, Gabi. I can’t take you with me. This case—it’s more complicated than you realize." "talk">>
<<addDialogue "Gabriela Rodriguez" "I’ve known you long enough to know you’re not going to talk me out of this. If you won’t tell me what’s going on, I’ll figure it out myself." "talk">>
<<addDialogue "" "Her determination hits hard. You know there’s no way you can let her in on this—not with the mayor’s explicit instructions. You look at your former partner and catch a glimpse of the history you share in her eyes before you respond, keeping your voice low." "description">>
<<horizontalStart>>
<<addDialogue "" "[[We will be partners again|introgabinofriendend2]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/gabriela.png" "Gabriela Rodriguez">><<dialogue "Casey" "If I solve this case, I get my badge back. I’ll be back in the detective unit, and then we can talk—about everything. Every word, every complaint, whatever you need to say. But right now, I can’t stay. This case won’t wait. If I want any shot at closing it, I need to move now." "talk">>
<<addDialogue "Gabriela Rodriguez" "You’re telling me you get your badge back if you solve this case? What exactly are you doing, Casey? This doesn’t sound like some routine job. Are you working for someone? Are they pulling your strings?" "talk">>
<<addDialogue "" "Her voice carries disbelief, edging toward anger, and her expression tightens. The worry in her eyes shifts to suspicion. As a detective, she knows when something smells off, and this whole situation is setting off every alarm she has." "description">>
<<addDialogue "Gabriela Rodriguez" "I get that you want your life back, but you can’t let someone use you like this. I don’t want to see you caught up in another mess you can’t get out of. This doesn’t feel right—and I know you feel it too." "talk">>
<<addDialogue "Casey" "It’s not what you think, Gabi. I don’t have a choice here. If I don’t solve this case, there’s no second chance. We can talk about all of it later, but right now, I can’t afford to waste any more time." "talk">>
<<addDialogue "" "You keep walking toward your car, your steps steady and determined. Gabriela watches you go, her face a mix of worry and frustration. She knows you’ve made up your mind. There’s no changing it now." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Get in the car|introcar]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/goodbye.png" "Gabriela Rodriguez">>
<<if $CaseyCoat is true>>
<<setAvatarDirect "caseycoat.png">>
<</if>>
<<unlockPhoto 3 4>>
<<dialogue "" "What the hell was Gabriela doing showing up at my door after two years? Does she actually give a damn about me now? I know her—I know she does—but why does it have to be right now, when I need to keep my head clear more than ever?" "thoughts">>
<<addDialogue "Casey" "Fuck..." "talk">>
<<addDialogue "" "I can’t let this throw me off. I have to keep moving." "thoughts">>
<<addDialogue "" "You slide into the car and turn the key. The engine growls to life, breaking the silence. The weight of everything—Gabriela, the case, the stakes—settles heavily on your shoulders, but there’s no room for second-guessing. No time to dwell on it." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Let's get going|Intro-Start]]">>
<<horizontalEnd>>
<<script>>
stopAllMusic();
<</script>>
<<timed 4s>>
<div class="titles">
<div class="title"></div>
<div id="title1"></div>
</div>
<div id="Menubutton">[[Start|introllegada1]]</div>
<</timed>>
<<set $bag = 0>>
<<set $IntroComplete = true>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('caseydescent.mp3', 500);
}, 1000);
<</script>>
<<script>>
hideCharacterMenu();
<</script>>
<<script>>
const slideshowContainer = document.createElement('div');
slideshowContainer.id = 'second-slideshow-container';
slideshowContainer.style.cssText = `
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
`;
document.body.appendChild(slideshowContainer);
const newImages = [
'media/events/caseytrip/uno.png',
'media/events/caseytrip/dos.png',
'media/events/caseytrip/tres.webp',
'media/events/caseytrip/cuatro.png',
'media/events/caseytrip/cinco.png',
'media/events/caseytrip/seis.png',
'media/events/caseytrip/siete.png',
'media/events/caseytrip/ocho.png',
'media/events/caseytrip/nueve.webp',
'media/events/caseytrip/diez.png',
'media/events/caseytrip/once.png',
'media/events/caseytrip/doce.png',
'media/events/caseytrip/trece.png',
'media/events/caseytrip/last.webp',
'img/backgrounds/intro1.png'
];
window.SlideshowSystem.create('second-slideshow', newImages, {
interval: 8000,
loop: true,
fadeTransition: true,
fadeDuration: 1000,
autoStart: true,
target: '#second-slideshow-container'
});
<</script>>
<style>
#Menubutton {
display: flex;
justify-content: center;
align-items: center;
position: fixed;
top: 65%;
left: 50%;
transform: translate(-50%, 25%);
width: 80vw;
max-width: 350px;
min-width: 120px;
padding: 1rem;
color: #e0e0e0;
text-align: center;
font-family: 'Cinzel', 'Georgia', serif;
font-size: clamp(18px, 5vw, 22px);
text-transform: uppercase;
letter-spacing: 1.5px;
z-index: 1000;
}
a:not([href*="introA"]):not(#save-button):not(.menu-button):not(.battle-button):not(.inventory-quickslot):not(.phone-button) {
color: rgb(212, 175, 55) !important;
text-decoration: none !important;
transition: all 0.3s ease !important;
border: 2px solid rgb(139, 105, 20) !important;
border-radius: 8px !important;
padding: 0.5em 1em !important;
width: auto !important;
text-align: center !important;
font-weight: bold !important;
box-shadow: 0 0 10px rgba(236, 188, 242, 0.5);
backdrop-filter: blur(5px);
}
a:not([href*="introA"]):not(#save-button):not(.menu-button):not(.battle-button):not(.inventory-quickslot):not(.phone-button):hover {
color: rgb(212, 175, 55) !important;
text-shadow: 0 0 8px rgba(255, 102, 102, 0.8), 0 0 12px rgba(255, 102, 102, 0.5);
border: 2px solid rgb(255, 215, 0) !important;
box-shadow: 0 0 15px rgba(255, 102, 102, 0.8), 0 0 25px rgba(255, 102, 102, 0.5);
transform: scale(1.05) !important;
}
@font-face {
font-family: 'personal-services';
src: url('path/to/personal-services.woff2') format('woff2'),
url('path/to/personal-services.woff') format('woff');
font-weight: normal;
font-style: normal;
}
#ui-bar, #character-menu, .stat-row, #name {
display: none;
}
#story {
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: center;
min-height: 100vh;
margin: 0 !important;
padding: 0 !important;
box-sizing: border-box;
}
.titles {
position: absolute;
top: 1vh;
left: 50%;
transform: translateX(-50%);
z-index: 1;
}
.title {
background-image: url(img/title.png);
background-size: contain;
background-repeat: no-repeat;
background-position: center;
width: 100vw;
max-width: 50rem;
height: 35vh;
margin: 0 auto !important;
padding: 0 !important;
z-index: 1;
}
#title1 {
background-image: url(img/title1.png);
background-size: contain;
background-repeat: no-repeat;
background-position: center;
width: 50vw;
max-width: 25rem;
height: 7vh;
margin: 0 auto !important;
padding: 0 !important;
animation: subwoofer-pump 2s cubic-bezier(0.455, 0.03, 0.515, 0.955) infinite;
transform-origin: center center;
z-index: 1;
position: relative;
top: -8.5vh;
}
@keyframes subwoofer-pump {
0% { transform: scale(1); }
20% { transform: scale(1.05); }
40% { transform: scale(0.98); }
60% { transform: scale(1.03); }
80% { transform: scale(0.99); }
100% { transform: scale(1); }
}
@media screen and (max-width: 768px) {
.title {
height: 37vh;
width: 95vw;
}
#title1 {
height: 8vh;
width: 50vw;
top: -13vh;
}
}
@media screen and (max-width: 480px) {
.titles {
top: 2vh;*
}
.title {
height: 20vh;
width: 100vw;
}
#title1 {
height: 4vh;
width: 55vw;
top: -5.5vh;
}
}
@media (orientation: landscape) and (max-height: 600px) {
.title {
transform: scale(1.375) !important;
transform-origin: center !important;
overflow: visible !important;
z-index: 10 !important;
}
}
@media (orientation: landscape) and (max-height: 600px) {
html body #title1, body #title1, #title1 {
transform: scale(1.375) !important;
transform-origin: center !important;
overflow: visible !important;
z-index: 10 !important;
}
}
</style>
<div class="control-buttons">
<div class="control-btn" id="menu-fullscreen-btn" title="Toggle Fullscreen">⛶</div>
</div>
<<script>>
$(document).ready(function() {
$('#menu-fullscreen-btn').on('click', function(e) {
e.preventDefault();
e.stopPropagation();
console.log('Menu fullscreen button clicked'); // Debug
try {
if (document.fullscreenElement) {
console.log('Exiting fullscreen'); // Debug
document.exitFullscreen();
} else {
console.log('Entering fullscreen'); // Debug
document.documentElement.requestFullscreen();
}
} catch (error) {
console.error('Fullscreen error:', error);
}
});
// Update fullscreen button icon on fullscreen change
$(document).on('fullscreenchange', function() {
console.log('Fullscreen state changed:', document.fullscreenElement ? 'ON' : 'OFF'); // Debug
// Aquí puedes cambiar el icono del botón si quieres
// $('#menu-fullscreen-btn').text(document.fullscreenElement ? '⛶' : '⛶');
});
});
<</script>>
<style>
.control-buttons {
position: fixed;
top: 0px;
left: 15px;
display: flex;
flex-direction: column;
gap: 1px;
z-index: 100000000 !important;
}
.control-btn {
width: 25px;
height: 25px;
background: rgba(20, 20, 20, 0.8);
border: 2px solid #d9c27e;
border-radius: 8px;
display: flex;
justify-content: center;
align-items: center;
font-size: 12px;
color: #d9c27e;
cursor: pointer;
transition: all 0.3s ease;
user-select: none;
box-shadow: 0 0 10px rgba(217, 194, 126, 0.2);
}
.control-btn:hover {
background: rgba(40, 40, 40, 0.9);
box-shadow: 0 0 15px rgba(217, 194, 126, 0.4);
transform: scale(1.05);
}
.control-btn:active {
transform: scale(0.95);
}
@media screen and (max-width: 768px) {
.control-btn {
width: 22px;
height: 22px;
font-size: 10px;
}
.control-buttons {
top: -18px;
left: 9px;
gap: 0px;
}
}
@media screen and (max-width: 768px) {
.control-btn {
width: 22px;
height: 22px;
font-size: 10px;
}
.control-buttons {
top: -18px;
left: 9px;
gap: 0px;
}
}
@media screen and (max-width: 480px) {
.control-btn {
width: 20px;
height: 20px;
font-size: 9px;
}
.control-buttons {
top: -20px;
left: 10px;
gap: 0px;
}
}
</style><<dialogue "" "You want to tell her everything, but the weight of the mayor’s call hangs over you. Gabriela doesn’t know a thing about it, and you can’t let her in." "description">>
<<addDialogue "Casey" "I can’t tell you much, Gabi. It’s confidential. But if I pull this off, I get my badge back. And when that happens, we’ll be working together again. I promise." "talk">>
<<addDialogue "Gabriela Rodriguez" "You’re really not on this case? Because something about this doesn’t add up, Casey. I’m not trying to be paranoid, but this whole thing feels off." "talk">>
<<addDialogue "Casey" "Gabi, I’ve told you what I can. It’s confidential." "talk">>
<<addDialogue "Gabriela Rodriguez" "You keep saying ‘trust me,’ but how am I supposed to do that when you won’t tell me anything? Casey, we’re talking about missing women. If you know something, just tell me. We could work it together." "talk">>
<<addDialogue "Casey" "I can’t, Gabi. The mayor specifically asked for total confidentiality. There’ll be time to talk later, I promise. But right now, I have to go." "talk">>
<<addDialogue "" "Gabriela’s eyes widen, her brow furrowing as your words sink in." "description">>
<<addDialogue "" "Shit. I just let that slip." "thoughts">>
<<addDialogue "Gabriela Rodriguez" "The mayor? What the hell does the mayor have to do with any of this? Casey!" "talk">>
<<addDialogue "Casey" "Gabi, don’t read too much into it. I can’t say anything else right now. Just trust me. When this is over, I’ll tell you everything." "talk">>
<<addDialogue "Gabriela Rodriguez" "I don’t like this, Casey. If the mayor’s involved, this isn’t some ordinary case. And if he’s got you working for him... Just tell me one thing: are you taking care of yourself? Because I don’t want to hear later that you got in over your head." "talk">>
<<addDialogue "Casey" "I’m good, Gabi. I can handle it. But right now, I really need to get going." "talk">>
<<addDialogue "" "Gabriela watches you for a moment longer, clearly unhappy with the half-answers, but she finally nods, a mix of resignation and concern on her face." "description">>
<<addDialogue "Gabriela Rodriguez" "Fine. Go. But hear me on this: if you need help—any help—you call me. No matter what it is. Got it?" "talk">>
<<addDialogue "Casey" "Got it, Gabi." "talk">>
<<addDialogue "" "You turn and head toward your car, feeling the weight of her stare on your back. You know she’s not going to let this go. Not with that instinct of hers for sniffing out trouble." "description">>
<<addDialogue "Gabriela Rodriguez" "Be careful, Casey." "talk">>
<<addDialogue "" "It feels good knowing I’ve still got someone like her in my corner—someone I can count on. I wish I could tell her everything. But I can’t. Not yet." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Get in the car|introcar2]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/gabriela.png" "Gabriela Rodriguez">>
<<dialogue "" "You slide into the car, turn the key, and the engine roars to life—a sound that cuts off any thought of turning back. The mayor is waiting, and with him comes the case that could either give you back your life or bury you for good." "description">>
<<addDialogue "" "It’s strange how things have changed. There was a time when I told Gabriela everything—the cases, the worries, even the stupid jokes that got us through the worst days. Once I get my badge back, it’ll be like that again." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Let's get going|Intro-Start]]">>
<<horizontalEnd>>
<<script>>
stopAllMusic();
<</script>>
<<showNPC "White" "img/characters/doctor/doctorwhite.png" "Dr. Alexander White">>
<<dialogue "" "df" "description">>
<<addDialogue "Gabriela" "
<<addDialogue "" "" "talk">>
<<addDialogue "Casey" "
" "talk">>
" "description">>
<<addDialogue "" "vd" "thoughts">>
<<timed 100ms>>
<<vdialogue "Gabriela" "$McName, when I saw you enter, I thought you weren't going to talk to me..." "talk">>
//To the end of passage
<</timed>>
<<horizontalStart>>
<<addDialogue "" "[[Computer|introsave]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|MainLobby]]" "center">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>><<timed 2s>>
<<dialogue "" "After more than two hours of driving, the journey has become long and monotonous. The sun begins to set as you leave the city behind, venturing into a more desolate landscape. The air in the car feels heavy, and the lonely roads seem to stretch endlessly. Finally, you reach the old parking lot of the psychiatric hospital. The worn asphalt creaks beneath the tires as you move forward, and in the distance, you see several abandoned cars scattered across the area." "description">>
<<addDialogue "" "You park in one of the empty spaces near the entrance, right next to one of the abandoned cars." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Get out of the car|parkingintro]]">>
<<horizontalEnd>>
<</timed>>
<<set $introcase = 3>>
<<script>>
window.CharacterMenuControl.show()
<</script>>
<<script>>
completeQuestStage("departure");
<</script>>
<<script>>
// Remove slideshow container
const slideshowContainer = document.getElementById('second-slideshow-container');
if (slideshowContainer) {
slideshowContainer.remove();
console.log('🗑 Removed slideshow container');
}
// Stop slideshow
if (window.SlideshowSystem) {
window.SlideshowSystem.stop('second-slideshow');
}
<</script>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('lobbytheme.mp3', 3000);
}, 1000);
<</script>>
<<set $bag = 1>>
<<set $inside = true>>
<<set $Arrive = true>><<dialogue "" "You step out of the car, the sound of the door closing echoing in the empty parking lot. You remain still for a few moments, observing the psychiatric hospital, whose presence feels even more intimidating now that you’re outside the vehicle. The daylight slowly fades, giving way to the impending night. The parking lot is deserted, with several abandoned cars scattered around, covered in dust and rust. As the darkness advances, an uneasy feeling begins to weigh on you. Everything seems immersed in an eerie silence, and the stillness of the scene contrasts with the bad feeling creeping over you." "description">>
<<addDialogue "Casey" " Great, another night of work... And this makes three in a row lost because of that damn cat. Once again, I have to spend the whole day sleeping." "talk">>
<<addDialogue "" "The wind stirs some dry leaves on the ground, making a sound that causes you to glance again, hoping to see nothing more than shadows. The atmosphere feels oppressive, as though the very place is watching you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Let's go|Parking]]">>
<<horizontalEnd>>
<<script>>
addQuestWithStages(
"Case",
"Investigate the Charles Francis Mental Hospital thoroughly. Search for any clues that might shed light on the kidnapping case and help you piece together what's really happening.",
[
"Enter in the building",
],
"📋",
"main",
"first_quest", // Custom ID
"img/quest.png" // Quest image
);
// Add stage images so completion notifications show the quest image
if (window.questSystem && window.questSystem.quests["first_quest"]) {
window.questSystem.quests["first_quest"].stageImages = [
"img/quest.png", // Stage 1
];
}
State.variables.captainQuestId = "first_quest";
<</script>>
<<script>>
window.setLighting(80);
<</script>><<dialogue "" "The painted lines have almost vanished beneath the dirt and cracks in the asphalt. A couple of broken streetlights stand like silent specters, their shattered glass reflecting the faint glow of the moon." "description">>
<<addDialogue "" "Near the edge of the road, an old wooden post holds a weathered map, its surface peeling and torn—too faded to read any clear directions." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check your car|YourCarParking]]">>
<<if $carquest gte 1 && $FBIcar isnot true>>
<<addDialogue "" "[[Check abandoned car|Carparking]]">>
<</if>>
<<horizontalEnd>>
<<if $maindoorclosed is true>>
<<horizontalStart>>
<<addDialogue "" "[[Other side of the parking|Parking2]]">>
<<addDialogue "" "[[Go to entrance|noenter]]">>
<<addDialogue "" "[[Road to lake|Camino-derecha]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Other side of the parking|Parking2]]">>
<<addDialogue "" "[[Go to entrance|PsiquiatricEntrance]]">>
<<addDialogue "" "[[Road to lake|Camino-derecha]]">>
<<horizontalEnd>>
<</if>>
<<goto "Forest">>
<<set $Fwolf = 0>><<set $bwfight = 2>>
<<set $bwinfight = true>>
<<script>>
completeQuestStage("Entry");
<</script>>
<<goto "Saveroom">>
<<goto "Forest">>
<<set $Fdiabolicwolf = 0>><<set $bwfight2 = 2>>
<<set $bwinfight2 = true>>
<<set $patientcome = 0>>
<<goto "Saveroom">><<set $srcff = 2>>
<<goto "SRcorridor">>
<<set $Sroom2 = 2>>
<<set $fapperisgone = true>>
<<goto "SRoom2">>
<<set $cavefight = 2>>
<<goto "Caveoutside">><<set $wolfcave = 2>>
<<goto "Cave2">><<dialogue "" "The wolf lies on the ground, its body motionless, the threat it posed now extinguished. With its fall, the echoes of growls and the stealthy movements of the other wolves vanish, leaving the cave in an eerie silence." "description">>
<<addDialogue "" "The darkness feels less oppressive, though still heavy with mystery. The cave, once dominated by the beasts, is now free of their presence." "description">>
<<addDialogue "" "For a moment, only the sound of your breath breaks the silence. You've accomplished something, but a sense of unease still lingers." "description">>
<<addDialogue "Casey" " Well... looks like this place is finally free of threats." "talk">>
<<addDialogue "" "Not that I can call it a perfect refuge. But at least, for now... it seems safe." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Examine remains|Examinecave]]">>
<<horizontalEnd>>
<<set $diabolicwolfcave = 2>>
<<set $SafePlaceCave = true>>
<<dialogue "" "The body twitches one last time before collapsing to the floor with a dull thud. A heavy silence fills the air, broken only by your ragged breath." "description">>
<<addDialogue "" "I can't stay here..." "thoughts">>
<<addDialogue "Casey" "I have to keep going, even... God, this is getting worse." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Main Hallway3]]">>
<<horizontalEnd>>
<<set $MHenemy = true>>
<<set $MHfight = 2>><<set $Fdiabolicwolf = 0>>
<<goto "Forest">><<dialogue "" "The demon collapses before you, its dark figure slowly fading into shadows absorbed by the air. The room, once filled with a malevolent presence, now feels calmer, as if the dark weight has been lifted." "description">>
The reflections in the mirrors return to normal, showing your image without distortions or hidden secrets. For a moment, you breathe easier, though you know this might only be a temporary respite in this nightmare." "description">>
<<addDialogue "Casey" "I still can’t believe this is real..." "talk">>
<<addDialogue "" "Or maybe I already was..." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Mirrors2]]">>
<<horizontalEnd>>
<<set $mirrorDemon = true>>
<<set $MirrorFight = 2>><<set $Fwolf = 0>>
<<goto "Forest">>
<<set $bwfight = 0>>
<<goto "Camino-izquierda">><<set $bwfight2 = 0>>
<<goto "Camino-izquierda">>
<<dialogue "" "You crouch down, observing the wolf's remains. Its body lies motionless on the ground. Dark fur covers much of its form, and a light layer of dirt and blood has accumulated on it. Something catches your attention in the remains—something shiny within its throat." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Reach in|bcard]]">>
<<horizontalEnd>>
<<set $safecave = true>><<if $openleftdoor isnot true>>
<<dialogue "" "The lights flicker erratically, their glow wavering as if on the verge of completely going out. Each flash casts shadows that slide and stretch along the passage, moving with an unsettling fluidity, as if they had a life of their own." "description">>
<<else>>
<<dialogue "" "The lights are off, leaving the hallway in a faint gloom. The little light that filters in from the outside barely reveals the outlines of the walls and floor, casting vague shadows that stretch and shift subtly with each step." "description">>
<</if>>
<<if $MCDopen isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check front door|corridorlobbyclosed]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<if $MCDopen is true>>
<<addDialogue "" "[[Grand Hall]]">>
<</if>>
<<addDialogue "" "[[Go to entrance|Main Hallway2]]">>
<<horizontalEnd>>
<<if $maindooropen is true && $MHenemy isnot true && $MHfight isnot 2>>
<<goto "runenemy">>
<</if>><<if window.gameState.lanternOn>>
<<goto "MirrorsCorridorLight">>
<<else>>
<<dialogue "" "The hallway stretches out before you like an endless tunnel; you can either turn back or keep moving forward. A couple of locked doors line the walls." "description">>
<<horizontalStart>>
<<addDialogue"" "[[Mirror's room|Mirrors]]" "">>
<<if $fork isnot true>>
<<addDialogue "" "[[Go ahead|MirrorsCorridor2]]">>
<<else>>
<<addDialogue"" "[[Head to the fork|MirrorsCorridor2]]">>
<</if>>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>><<set $srcsf = 0>>
<<goto "SRcorridor2">><<set $srcff = 0>>
<<goto "SRcorridor">><<dialogue "" "You barely manage to escape the wolves, adrenaline fueling your every step. They don’t pursue you—instead, they remain at the cave’s entrance, standing their ground, as if warning you to never return." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Caveoutside]]">>
<<horizontalEnd>>
<<set $wolfcave = 0>>
<<dialogue "" "You run without looking back, the echo of your footsteps resounding through the cave. You can feel its presence lurking, its gaze burning into your back, but it doesn’t chase you." "description">>
<<addDialogue "" "When you finally emerge from the tunnel, you stop, gasping for breath. You turn toward the darkness, and there it is—motionless at the entrance, its red eyes glowing like embers." "description">>
<<addDialogue "" "It doesn’t cross the threshold. It doesn’t follow you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Caveoutside]]">>
<<horizontalEnd>>
<<set $diabolicwolfcave = 0>><<dialogue "" "The guy doesn't chase you and returns to his corner." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|SRcorridor1]]">>
<<horizontalEnd>>
<<set $Sroom2 = 0>><<set $cavefight = 0>>
<<goto "Forest">><<if window.gameState.lanternOn>>
<<goto "SRcorridor1Light">>
<<else>>
<<dialogue "" "You stop in the middle of the hallway. Ahead of you, two open doors lead into dark rooms on either side. One to the left, the other to the right, both shrouded in an unsettling darkness." "description">>
<<if $leftroom1 isnot true && $leftroom2 isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Right Door|SDoor2]]">>
<<addDialogue "" "[[Left Door|SDoor1]]">>
<<horizontalEnd>>
<<elseif $leftroom1 isnot true && $leftroom2 is true>>
<<horizontalStart>>
<<addDialogue "" "[[Left Door|SDoor1]]">>
<<addDialogue "" "[[Right Room|SRoom2]]">>
<<horizontalEnd>>
<<elseif $leftroom1 is true && $leftroom2 isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Left Room|SRoom1]]">>
<<addDialogue "" "[[Right Door|SDoor2]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Left Room|SRoom1]]">>
<<addDialogue "" "[[Right Room|SRoom2]]">>
<<horizontalEnd>>
<</if>>\
<<horizontalStart>>
<<addDialogue "" "[[Go to small office|SRcorridor]]">>
<<addDialogue "" "[[Go to next hallway|SRcorridor2]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<<set $srhallway = true>>
<<if $SafePlaceCave isnot true>>
<<dialogue "" "You stand at the entrance of the cave, a dark fissure in the rock exhaling cold, heavy air. The silence is almost absolute, broken only by the wind whistling through the stones. Something inside seems to be watching you, waiting." "description">>
<<else>>
<<dialogue "" "You stand at the entrance of the cave, a dark fissure in the rock exhaling cold, heavy air. The silence is almost absolute, broken only by the wind whistling through the stones." "description">>
<</if>>
<<if $cavefight is 2>>
<<if window.gameState.lanternOn>>
<<horizontalStart>>
<<addDialogue "" "[[Enter in the cave|Cavelight]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Enter in the cave|CaveNoenter]]">>
<<horizontalEnd>>
<</if>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Enter in the cave|ForestCave]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back to path|Forest]]" "center">>
<<script>>
window.setLighting(60);
<</script>>
<<dialogue "" "Your car is parked, waiting for the moment to leave the place." "description">>
<<addImage "img/events/caseycar.png">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Parking]]">>
<<horizontalEnd>>
<<if $EndAberrationEvent is true>>
<<goto "YourCar2Parking">>
<</if>>
<<dialogue "" "The car is clearly abandoned. The body, covered in dust, and the broken windows suggest it’s been here for a long time. No one has been near it for quite a while." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" " There's nothing that can be done with this." "talk">>
<</switch>>
<<addImage "img/events/car.png">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Parking]]">>
<<horizontalEnd>>
<<dialogue "" "This part of the parking lot stretches into a secluded corner, lying in silence under the night. A few old, rusted vehicles stand like motionless shadows, consumed by time. A narrow path extends from here, skirting the building to the left before vanishing into the depths of the forest. The wind howls in this area, dragging dry leaves across the cracked asphalt, breaking the unsettling silence." "description">>
<<if $carquest gte 1 && $FBIcar isnot true>>
<<if $fbicarchek is true>>
<<horizontalStart>>
<<addDialogue "" "[[Check FBI's car|CarBlackCheck]]">>
<<addDialogue "" "[[Check abandoned car|CarGreyCheck]]">>
<<addDialogue "" "[[Check abandoned ambulance|AmbulanceCheck]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Check abandoned black car|CarBlackCheck]]">>
<<addDialogue "" "[[Check abandoned car|CarGreyCheck]]">>
<<addDialogue "" "[[Check abandoned ambulance|AmbulanceCheck]]">>
<<horizontalEnd>>
<</if>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Path to forest|Camino-izquierda]]">>
<<addDialogue "" "[[Parking near the entrance|Parking]]">>
<<horizontalEnd>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "When you return to the door, you find it closed. You approach and push, but it doesn’t move. It’s blocked from the other side." "description">>
<<addDialogue "Casey" "What the hell?, Hey! Doctor White, open the door! White!" "talk">>
<<addDialogue "" "You yell and pound on the door, but it’s useless. You get no response, and the door remains shut." "description">>
<<addDialogue "Casey" "God, how could I be so stupid?" "talk">>
<<addDialogue "" "Well, at least now I have a main suspect." "thoughts">>
<<addDialogue "Casey" "I need to find a way in and locate White." "talk">>
<<script>>
addQuestWithStages(
"Re:Entry",
" The main entrance is sealed. Explore the building's perimeter to find another way to get inside.",
[
"Find another way in.",
],
"📋",
"main",
"enter_quest", // Custom ID
"img/quest.png" // Quest image
);
// Add stage images so completion notifications show the quest image
if (window.questSystem && window.questSystem.quests["enter_quest"]) {
window.questSystem.quests["enter_quest"].stageImages = [
"img/quest.png", // Stage 1
];
}
State.variables.captainQuestId = "enter_quest";
<</script>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<<default>>
<<dialogue "" "The door is closed from the other side." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Go back|Parking]]">>
<<horizontalEnd>>
<<set $maindoorclosed = true>>
<<set $mayorcall = 2>><<if $maindoorclosed is true>>
<<dialogue "" "The large entrance door remains closed, its heavy structure worn down by time." "description">>
<<else>>
<<addDialogue "" "The large entrance door is open, revealing a dark interior where the air seems to seep out carrying the scent of dust and decay." "description">>
<</if>>
<<if $intro is 1>>
<<horizontalStart>>
<<addDialogue "" "[[Enter in the psiquiatric|noenter]]">>
<<addDialogue "" "[[Go to parking|Parking]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Enter in the psiquiatric|MainLobby]]">>
<<addDialogue "" "[[Go to parking|Parking]]">>
<<horizontalEnd>>
<</if>>
<<if $DoctorTalk is 1 && $mayorcall is 1 && $maindooropen isnot true>>
<<goto "noenter">>
<</if>>
<<if $DoctorTalk is 1 && $mayorcall isnot 1 && $mayorcall isnot 2>>
<<goto "mayorcall">>
<</if>>
<<if $maindoorclosed is true>>
<<goto "noenter">>
<</if>>
<<if $inside is true && $firstenter gte 1>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('outsidetheme.mp3', 4000);
}, 1000);
<</script>>
<<set $inside = false>>
<</if>>
<<script>>
window.setLighting(90);
<</script>>
<<dialogue "" "You edges along the building to the right, its cracked pavement making the walk a little difficult. The walls, worn and covered in mold, have barred windows that seem to watch over the silent path. On one side, the bare trees rise like twisted shadows." "description">>
<<if $mayorcall gte 1 && $Windowcrash isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Inspect the building|buildinginspect2]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Parking|Parking]]">>
<<addDialogue "" "[[Go around the building|Camino-intermedio]]">>
<<addDialogue "" "[[Road to lake|Camino-LagoParking]]">>
<<horizontalEnd>>
<<switch visited>>
<<case 1>>
<<dialogue "" "As you arrive, your chest tightens. The hood is slightly open, showing clear signs of tampering. You step closer, cautiously. As you examine the engine, your worst fears are confirmed: the system has been sabotaged." "description">>
<<addDialogue "Casey" "Shit! I really didn’t see this one coming..." "talk">>
<<addDialogue "" "You glance nervously over your shoulder, but the forest remains eerily silent. A cold knot forms in your stomach." "description">>
<<addDialogue "Casey" "Stay calm, Casey. Think." "talk">>
<<addDialogue "" "This wasn’t a random act; someone doesn’t want me to leave this place." "thoughts">>
<<addDialogue "" "You step away from the car, every instinct screaming that you’re being watched. The feeling is so intense that it makes your skin crawl." "description">>
<<addImage "img/events/caseycar.png">>
<<horizontalStart>>
<<addDialogue "" "[[Examine engine|CarEngine]]">>
<<horizontalEnd>>
<<default>>
<<dialogue "" "The car, though in good condition, has been recently sabotaged; the main starter fuse is missing." "description">>
<<addDialogue "" "If I want to get out of here, I'll have to find that fuse." "thoughts">>
<<addImage "img/events/caseycar.png">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Parking]]">>
<<horizontalEnd>>
<</switch>>
<<set $mycarSabotage = true>><<dialogue "" "You examine the engine closely, taking note of every detail. The cables, the battery, the electrical components all seem intact, but something doesn’t add up. As you inspect more closely, you discover what you feared: the system has been sabotaged." "description">>
<<addDialogue "" "Someone took the main fuse from the engine. Without it, the car won’t start." "thoughts">>
<<addDialogue "Casey" "Well, I wasn’t planning on leaving just yet. But goddammit! My car! That son of a bitch!" "talk">>
<<addDialogue "" "Anyway... there's nothing I can do right now, but if I find the one who did this... they'll pay with interest." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Parking]]">>
<<horizontalEnd>>
<<dialogue "" "The lobby is dark and dusty, with faint traces of burns on the walls. The wooden counter is covered with yellowed papers and debris. Light filtering through the broken skylights casts shadows on the cracked floor. The distant creak of the building is the only sound." "description">>
<<horizontalStart>>
<<if $openleftdoor isnot true>>
<<addDialogue "" "[[Check door on the left|DoorLeft]]">>
<</if>>
<<if $maindoorclosed is true>>
<<addDialogue "" "[[Check entrance door|maindoor]]">>
<</if>>
<<if $DoctorTalk is 1 && $mayorcall isnot 2>>
<<addDialogue "" "[[Talk to Dr. White|doctalk]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<if $openleftdoor is true>>
<<addDialogue "" "[[Hallway to small office|Left Corridor]]">>
<</if>>
<<addDialogue "" "[[Main hallway]]">>
<<if $maindoorclosed isnot true>>
<<addDialogue "" "[[Outside|PsiquiatricEntrance]]">>
<</if>>
<<if $DoorRightCorridor isnot true>>
<<addDialogue "" "[[Right hallway|closedcorridor]]">>
<<else>>
<<addDialogue "" "[[Right Hallway]]">>
<</if>>
<<horizontalEnd>>
<<if $corridorchek is 1 && $doorcorridorchek is 1 && $doorchek is 1 && $DoctorTalk isnot 1 && $CabinCheck isnot true>>
<<goto "DoctorMeet">>
<</if>>
<<if $CabinCheck is true && $DoctorTalk isnot 1>>
<<goto "DoctorMeet">>
<</if>>
<<if $firstenter isnot 1>>
<<goto "firstenter">>
<</if>>
<<if $openleftdoor is true && $mhr isnot true>>
<<goto "nodoc">>
<</if>>
<<if $MHenemy is true && $MHfight lt 2>>
<<set $MHenemy = false>>
<<set $MHfight = 0>>
<<removecountdown>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('lobbytheme.mp3', 4000);
}, 1000);
<</script>>
<</if>>
<<if $inside isnot true || $darksituation is true>>
<<set $darksituation = false>>
<<set $inside = true>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('lobbytheme.mp3', 4000);
}, 1000);
<</script>>
<</if>>
<<script>>
window.setLighting(80);
<</script>>
<<dialogue "" "You leave the building, leaving the doctor behind, waiting in the shadows. While you were inside, night has fully fallen. You make your way to the parking lot, searching for a secluded spot where you can have some privacy and where your words won’t echo throughout the area." "description">>
<<addDialogue "Casey" "I don't think it’s a good idea to wait for him to call again." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Go to parking|mayorcall2]]">>
<<horizontalEnd>>
<<set $mayorcall = 1>><<dialogue "" "You dial the mayor's number quickly, but the call cuts off as soon as it starts to ring. Frustrated, you try again. The signal remains unstable, interrupted by static. Finally, the call connects, but Quentin's voice sounds distant, as if coming from somewhere far away." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Quentin?|mayorcall3]]">>
<<horizontalEnd>>
<<dialogue "Casey" "Quentin?" "talk">>
<<addDialogue "Mayor Quentin" "C@s3y... t3lls0m3th1ng..." "talk">>
<<addDialogue "Casey" "Shit! I can't understand you, Quentin. You hear me?" "talk">>
<<addDialogue "" "His voice cuts out, and a series of incomprehensible noises invade the line. You focus, trying to catch whatever he might be saying, but all you manage to hear are fragments, like distorted echoes of a distant conversation." "description">>
<<addDialogue "Mayor Quentin" "Y0u3 p@rtn3r... Rodriguez!" "talk">>
<<addDialogue "Casey" "What’s going on?" "talk">>
<<addDialogue "" "You try adjusting the volume, but all you manage to hear is more static. The sound cuts off abruptly." "description">>
<<addDialogue "Casey" "Damn! There’s interference here too..." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Hang up the phone|mayorcall4]]">>
<<horizontalEnd>>
<<script>>
playSoundDirect('staticphone.mp3');
<</script>>
<<showNPC "mayor" "img/characters/mayor/mayor.png" "Mayor Quentin">><<dialogue "" "You hang up the phone, feeling a wave of discomfort." "description">>
<<addDialogue "" "The call was pointless. He said “Rodriguez,” but I couldn’t understand anything else, anyway... What does Gabriela have to do with the Mayor? It doesn't make sense, she hates politicians… Mmm... probably she’s with him to find out where I am." "thoughts">>
<<addDialogue "Casey" " Ugh… maybe I should call her later. I have no other choice. It's time to continue my investigation. I need to go back to the doctor." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Parking]]">>
<<horizontalEnd>>
<<playSound "sound" "media/sounds/none.mp3" volume:0.5>>
Classic: (default horizontal)
<<addVideo "media/violet/scissors2.webm" "" "vertical" "true" "false" "false" "false">>
Vertical (default settings)
<<addVideo "media/mambo/54.webm" "" "vertical" "true" "false" "false" "false">> "" "vertical" "true" "false" "false" "false">>
Customizable:
<<addVideo "media/violet/scissors2.webm" "" "vertical" "true" "false" "false" "false">> "" false true true true "500px">>
<<addImage "img/backgrounds/showerd.png">>
<<addImageV "img/items/keys/cbottle.png">><<dialogue "" "When you look at the car again, everything remains the same. The layer of fallen leaves still partially covers it, and the armored windows keep the interior hidden. The door remains locked, with no signs that anyone has been near." "description">>
<<addDialogue "" "I need the car keys or something to pick the lock." "thoughts">>
<<addImage "img/events/fbicar.png">>
<<if $FBIcar isnot true>>
<<if $ironbarStair is true>>
<<if $hasCarKey is true>>
<<horizontalStart>>
<<addDialogue "" "[[Break glass with iron bar|noblackcar]]">>
<<addDialogue "" "[[Open car with key|openfbicarKey]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Break glass with iron bar|noblackcar]]">>
<<horizontalEnd>>
<</if>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Try to pick the lock|FBICarLockpick]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Back|Parking2]]">>
<<horizontalEnd>>
<<if $fbicarchek isnot true>>
<<goto "checkfbicar">>
<</if>><<switch visited()>>
<<case 1>>
<<dialogue "Casey" " Let’s see if this wreck has anything useful..." "talk">>
<<addDialogue "" "The hood is caked in rust, and the windows are nothing but jagged shards. As the door creaks open, a foul stench of mildew and stale gasoline wafts out, revealing nothing but a mess of debris inside." "description">>
<<addDialogue "Casey" " Perfect, nothing like a moldy seat and a trunk jammed shut." "talk">>
<<addDialogue "" "The car is completely useless." "description">>
<<default>>
<<dialogue "" "The hood is caked in rust, and the windows are nothing but jagged shards. As the door creaks open, a foul stench of mildew and stale gasoline wafts out, revealing nothing but a mess of debris inside." "description">>
<</switch>>
<<addImage "img/events/car1.png">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Parking2]]">>
<<horizontalEnd>>
<<if $ambulanceStim isnot true>>
<<dialogue "" "You approach the abandoned ambulance, its paint faded and the doors slightly ajar. As you peer inside, the dust and stale odor hit you immediately. Amid the scattered mess, something catches your eye: a small metal vial lying on the floor. You pick it up carefully and read the worn-out label." "description">>
<<addDialogue "Casey" "Some stimulants! From back when they weren't banned yet. Quite the relic." "talk">>
<<addImage "img/events/ambulance.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take stim|ambulanceStim|?!canPickupStim]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "You approach the ambulance again. The scene hasn’t changed." "description">>
<<addDialogue "Casey" " There’s nothing left here. Just a memory of better times… or worse." "talk">>
<<addImage "img/events/ambulance.png">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Back|Parking2]]">>
<<horizontalEnd>>
<<dialogue "" "From here, you can only see two paths. To your left, a trail leads into the forest. The trees form a natural canopy, and the ground is covered with fallen leaves. The path is dark and silent. To your right, a simpler path leads back to the parking lot and goes around the building." "description">>
<<if $mayorcall gte 2>>
<<horizontalStart>>
<<addDialogue "" "[[Inspect the building|buildinginspect]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Path to Forest|Camino-bosque]]">>
<<addDialogue "" "[[Parking|Parking2]]">>
<<addDialogue "" "[[Go around the building|Camino-izquierda2]]">>
<<horizontalEnd>>
<<if $Windowcrash is true && $bwinfight2 isnot true && $patientcome is 1>>
<<removecountdown>>
<<set $patientcome = 0>>
<</if>>
<<if $inside is true && $firstenter gte 1>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('outsidetheme.mp3', 4000);
}, 1000);
<</script>>
<<set $inside = false>>
<</if>>\
<<script>>
window.setLighting(90);
<</script>>
<<script>>window.addItemFromDatabase('stim', 2);<</script>>
<<goto "Parking2">>
<<set $ambulanceStim = true>><<dialogue "" "You grit your teeth and swing the iron bar with all your strength against the car window. The impact echoes through the night with a dull thud, but the glass barely reacts, leaving only a faint mark on the surface" "description">>
<<addDialogue "Casey" " Tsk…" "talk">>
<<addDialogue "" "Frowning, you try again, this time with more force. The shock vibrates through your hands, but the glass remains unscathed." "description">>
<<addDialogue "" "Maybe one more time." "thoughts">>
<<addDialogue "" "You take a deep breath, tighten your grip, and deliver one final strike, pouring all your pent-up rage into it. A sharp crack fills the air—but it's not the glass that gives way. The bar snaps in two." "description">>
<<addDialogue "Casey" "I should’ve known bulletproof glass wouldn’t break so easily. Maybe if I were a 2-meter-tall NBA player…" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Parking2]]">>
<<horizontalEnd>>
<<dialogue "" "You insert the key into the lock and turn it carefully. The door unlocks with a soft click, and the alarm remains silent." "description">>
<<addDialogue "Casey" " Alright... Let's see what's inside." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Inspect the car|FBIcar]]">>
<<horizontalEnd>>
<<discardItem "mission_keycar">>
<<dialogue "" "You open the car door and settle into the driver's seat, the air filled with the familiar scent of leather and metal." "description">>
<<if $hasCarKey isnot true>>
<<switch visited()>>
<<case 3>>
<<addDialogue "Casey" "Why the hell am I here again? Maybe I should find the keys first." "talk">>
<</switch>>
<</if>>
<<if $hasCarKey is true>>
<<horizontalStart>>
<<addDialogue "" "[[Start the car|sabotageFBI]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|Parking2]]">>
<<horizontalEnd>>
<<dialogue "" "You stop in front of the vehicle. The body, covered by a few fallen leaves, suggests it’s been here for a while. The armored windows prevent you from seeing inside." "description">>
<<addDialogue "" "It’s the FBI car, no doubt about it." "thoughts">>
<<addDialogue "" "You try to open it, but as you pull on the handle, you realize it won’t budge." "description">>
<<addDialogue "Casey" " And of course, it’s locked." "talk">>
<<addDialogue "" "There’s no sign that anyone has been in the car recently." "thoughts">>
<<addDialogue "Casey" " Anyway, I have to find a way to open it; maybe I’ll find something important." "talk">>
<<addImage "img/events/fbicar.png">>
<<if $FBIcar isnot true>>
<<if $ironbarStair is true>>
<<if $hasCarKey is true>>
<<horizontalStart>>
<<addDialogue "" "[[Break glass with iron bar|noblackcar]]">>
<<addDialogue "" "[[Open car with key|openfbicarKey]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Break glass with iron bar|noblackcar]]">>
<<horizontalEnd>>
<</if>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Try to pick the lock|FBICarLockpick]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Back|Parking2]]">>
<<horizontalEnd>>
<<set $fbicarchek = true>>
<<script>>
completeQuestStage("fbi_vehicle_quest");
<</script>><<if $FBIcar isnot true>>
<<dialogue "" "You slide into the driver's seat and glance around. You're not sure what you're looking for—just something useful, a clue. The car's interior is in good condition. You search the dashboard and seats until you find a document on the passenger seat. The FBI seal on the cover catches your attention. Flipping through it briefly, you spot a familiar name." "description">>
<<addDialogue "Casey" " Alexander White." "talk">>
<<addDialogue "" "Okey, let's see what we have here." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Take files|FBIcar1]]">>
<<horizontalEnd>>
<<set $FBIcar = true>>
<<else>>\
<<if $sabotageFBI isnot true>>\
<<dialogue "" "You slide into the driver's seat and glance around. You check the seat, and there it is: the box of ammo is still in place." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take ammo|FBIcarAmmo2|?!canPickupPistolAmmo]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|Parking2]]">>
<<horizontalEnd>>
<<else>>\
<<dialogue "" "You search between the seats once more, but there's nothing useful left. The car is empty." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|Parking2]]">>
<<horizontalEnd>>
<</if>>
<</if>>
<<dialogue "" "You grab the document and begin to read it." "description">>
<<addImage "img/documents/fbifile_01.png">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|fbicarThink]]">>
<<horizontalEnd>>
<<script>>
completeQuestStage("FBI's car");
<</script>>
<<script>>
window.addDocumentWithNotification(
"fbi_report_charles_francis",
"FBI Field Report",
"Confidential document regarding Dr. Alexander White and the Charles Francis Psychiatric Hospital.",
"",
"close_photo",
"📋",
{
imagePath: "img/documents/fbifile_01.png",
location: "Inside the vehicle of FBI agents Dina Carter and Douglas Cohle",
photographer: "FBI Surveillance Unit",
frontDescription: `Classified report linking Dr. Alexander White to the disappearances at the abandoned Charles Francis Psychiatric Hospital. Found in the agents' vehicle after their disappearance.`
}
);
<</script>>
<<script>>
playSoundDirect('page.mp3');
<</script>>
<<dialogue "Casey" "I’ll borrow this..." "talk">>
<<addDialogue "" "There's no turning back now. The doctor is kidnapping people, and I have to stop him." "thoughts">>
<<addDialogue "Casey" " Let's get moving." "talk">>
<<if $hasCarKey is true>>
<<horizontalStart>>
<<addDialogue "" "[[Start the car|sabotageFBI]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|Parking2]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('pistol_ammo', 24);<</script>>
<<set $ammoCar = true>>
<<dialogue "" "You insert the keys into the ignition and turn, but the engine doesn't respond. You try again, with more force, but all you hear is a faint buzz followed by a deathly silence." "description">>
<<addDialogue "" "The car won't start. Maybe someone sabotaged it." "thoughts">>
<<addDialogue "" "You get out of the car and open the hood. A quick glance confirms your suspicions: a disconnected fuel line, cut wires, the entire electrical system tampered with." "description">>
<<addDialogue "" "The sabotage is obvious, though not very professional." "thoughts">>
<<addDialogue "Casey" " Someone didn’t want Rust and Dina to leave here." "talk">>
<<addDialogue "" "You slam the hood shut in frustration, the loud bang echoing through the abandoned parking lot as you realize you also arrived by car." "description">>
<<if $mycarSabotage isnot true>>
<<addDialogue "Casey" " Shit! I should check my car." "talk">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Parking|Parking2]]">>
<<horizontalEnd>>
<<dialogue "" "You slowly close the file, letting the information settle in your mind." "description">>
<<addDialogue "" "First floor, Hallway B, room 202. That's where Dr. White's office is. Most likely, he's there." "thoughts">>
<<addDialogue "" "You tuck the document into your pocket and look around. Next to your papers, you find a box of ammunition: 38 rounds 9mm. The car is off, parked in the desolate place. Everything seems calm. As you sit behind the wheel, you take one last look at the hospital in front of you, the place where the pieces of the puzzle will finally come together." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take ammo|FBIcarAmmo|?!canPickupPistolAmmo]]">>
<<horizontalEnd>><<dialogue "Casey" "I’ll borrow this..." "talk">>
<<addDialogue "" "There's no turning back now. The doctor is kidnapping people, and I have to stop him." "thoughts">>
<<addDialogue "Casey" "Let's get moving." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Start the car|sabotageFBI]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|Parking2]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('pistol_ammo', 24);<</script>>
<<set $ammoCar = true>><<dialogue "" "You observe the building's facade. Its structure looks old and worn, with cracks in the walls and an air of abandonment. One of the windows catches your attention: the bars that should protect it are broken, leaving a space wide enough to pass through." "description">>
<<addImage "img/events/window.png">>
<<horizontalStart>>
<<addDialogue "" "[[Break the window|brokewindow]]">>
<<addDialogue "" "[[Back|Camino-izquierda]]">>
<<horizontalEnd>>
<<if $Windowcrash is true>>
<<goto "buildinginspect1">>
<</if>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "You are close to the forest, the tall, dark trees rising like silent sentinels. The air shifts, becoming cooler, filled with the scent of damp leaves and soil. As you move forward, the shadows seem to shift, as if the forest were alive, watching you." "description">>
<<default>>
<<dialogue "" "The cool air and the whisper of leaves around you wrapping you in their presence. The shadows follow as you step between the trees." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Go through the forest|Forest]]">>
<<addDialogue "" "[[Path to parking|Camino-izquierda]]">>
<<horizontalEnd>>
<<dialogue "" "Taking the path around the building to avoid the forest, you reach the back. Roots cling to the cracked walls, and a dusty path leads to an old entrance. Some windows are boarded up, others broken, reflecting the moon. The silence is broken only by the creak of wood and the wind." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Forest path|Camino-izquierda]]">>
<<addDialogue "" "[[Back of the building|Camino-intermedio]]">>
<<horizontalEnd>><<switch visited()>>
<<case 1>>
<<dialogue "" "The night cloaks the forest in an almost total darkness, interrupted only by the faint light of the moon filtering through the branches. The air is cold, and the deep, oppressive silence is suddenly broken by a distant howl. A shiver runs through you as the sound echoes among the trees, followed by other howls rising in response, creating a haunting symphony. The beasts are near, and the forest seems to breathe with them, wrapping you in a sense of imminent danger." "description">>
<<addDialogue "Casey" " I have bad feelings..." "talk">>
<<default>>
<<dialogue "" "The beasts are near, and the forest seems to breathe with them, wrapping you in a sense of imminent danger." "description">>
<</switch>>
<<if $Cave is true>>
<<horizontalStart>>
<<addDialogue "" "[[Explore the forest|ForestExplore]]">>
<<addDialogue "" "[[Path to parking|Camino-bosque]]">>
<<addDialogue "" "[[Go to the cave|Caveoutside]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Explore the forest|ForestExplore]]">>
<<addDialogue "" "[[Path to parking|Camino-bosque]]">>
<<horizontalEnd>>
<</if>>
<<script>>
window.setLighting(80);
<</script>><<dialogue "" "With a precise strike of the pistol’s butt, the glass shatters, exploding into a shower of sharp fragments." "description">>
<<addImage "img/events/brokenwindow.png">>
<<horizontalStart>>
<<addDialogue "" "[[Enter through the window|Enterwindow]]">>
<<horizontalEnd>>
<<script>>
playSoundDirect('windowcrash.mp3');
<</script>>
<<set $Windowcrash = true>>
<<dialogue "" "The window is broken just as you left it." "description">>
<<addImage "img/events/brokenwindow.png">>
<<horizontalStart>>
<<addDialogue "" "[[Enter through the window|Enterwindow]]">>
<<addDialogue "" "[[Back|Camino-izquierda]]">>
<<horizontalEnd>>
<<dialogue "" "A dry crack echoes through the night as you slip into the abandoned psychiatric facility, landing on the cold, dust-covered floor. The first thing you notice is the sour stench of dampness and decay." "description">>
<<addDialogue "Casey" " Ugh, what a stench..." "talk">>
<<addDialogue "" "A man emerges from the shadows, dressed in a torn and stained patient uniform. His head bears the crude scars of a botched lobotomy, leaving his gaze hollow and lost... until he sees you. In his hand, he clutches a strange, sharp object, its twisted form glinting in the dim light." "description">>
<<addDialogue "" "A patient! Maybe I can ask him a few questions." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Talk to him|brokewindowtalk]]">>
<<horizontalEnd>>
<<if $bwinfight gte 1>>
<<goto "Saveroom">>
<</if>><<addDialogue "Casey" "Hey, sorry, are you a patient of Dr. White? " "talk">>
<<addDialogue "" "As soon as he hears your voice, something changes in his expression. His trembling lips curl into a grotesque smile, and his body starts to tremble with sickening excitement." "description">>
<<addDialogue "Patient" "You... pretty... so... pretty..." "talk">>
<<addDialogue "" "What the hell is wrong with him?" "thoughts">>
<<addDialogue "Casey" "Can I ask you a few questions?" "talk">>
<<addDialogue "Patient" "Come here... come... touch... you... I like... a lot..." "talk">>
<<addDialogue "" "The stranger reaches out, trying to grab one of your breasts, but you quickly move away before he can touch you." "description">>
<<addDialogue "Casey" "What the fuck are you trying to do?" "talk">>
<<addDialogue "Patient" "No! give me... Give me!" "talk">>
<<addDialogue "" "The patient, visibly enraged by the rejection, growls with uncontrollable fury. His eyes fill with rage, and without warning, he lunges toward you, his hands outstretched, trying to grab you. His body, clumsy and disoriented, moves with an unexpected speed." "description">>
<<addDialogue "Patient" "Argh!" "talk">>
<<addDialogue "Casey" "Oh my god!" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Fight him|brokewindowfight]]">>
<<horizontalEnd>>
<<set $bwfight = 1>>
<<showNPC "patient" "img/monsters/patients/lbpatient.png" "Patient">>
<<set $EventE1 = 1>>
<<run startAdvancedBattle([
{
type: 'lobotomizedPatient',
hp: 80,
distance: 20,
randomDistance: true,
speed: "2-5",
minMovement: 2,
maxMovement: 5,
damage: 9,
DamageIgnore: {
'pistol': 0.2,
'rifle': 0.0,
'shotgun': 0.0,
'melee': 0.6,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.4,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', true)>>
<<if $FightTutorial isnot true>>
<<set $FightTutorial = true>>
<div id="combatTutorialModal" class="modal">
<div class="modal-content">
<span class="close-button" onclick="document.getElementById('combatTutorialModal').style.display='none'">×</span>
<h2>Combat Tutorial with Firearms and Melee Weapons</h2>
<p><strong>Goal:</strong> Defeat all enemies without dying.</p>
<div class="modal-section">
<div class="modal-column">
<strong>Controls:</strong>
<ul>
<li><strong>Firearms:</strong>
<ul>
<li>Equip a firearm (such as a pistol, shotgun, or rifle) and the corresponding ammunition to shoot.</li>
<li>Press the "Shoot" button. If facing multiple enemies at once, press the "Shoot" button and then select the enemy card you want to attack.</li>
</ul>
</li>
<li><strong>Melee Attacks and Weapons: (Next Update)</strong>
<ul>
<li>If you have no weapons, you can perform melee attacks by waiting for the enemy to get close enough. These attacks deal less damage, but you can equip melee weapons to improve them.</li>
<li>Equip a melee weapon (such as a knife, bat, or machete) to perform close-range attacks when enemies are close enough.</li>
<li><strong>Note:</strong> Equipping a melee weapon will automatically unequip any equipped firearm, and vice versa.</li>
<li>Damage varies depending on the melee weapon used.</li>
</ul>
</li>
</ul>
</div>
<div class="modal-column">
<strong>Additional Tips:</strong>
<ul>
<li>Different types of ammunition can deal extra damage with firearms.</li>
<li>You can find weapon modifications that increase damage or accuracy.</li>
<li>Different rooms and hallways have various types of lighting, which affect your accuracy. Use the flashlight (when you have the flashlight) in dark places to gain an accuracy bonus.</li>
</ul>
</div>
</div>
<div style="text-align: center; margin-top: 20px;">
<button id="continueButton" class="continue-button">Continue</button>
</div>
</div>
</div>
<<script>>
$(document).ready(function () {
$("#combatTutorialModal").css("display", "flex");
$(document).off("click", "#continueButton, .close-button").on("click", "#continueButton, .close-button", function () {
$("#combatTutorialModal").css("display", "none");
});
});
<</script>>
<<timed 300ms>>
<<script>>
playSoundDirect('button.mp3');
<</script>>
<</timed>>
<</if>>
<style>
p {
text-align: center;
color: #e9e9e9;
}
b, strong {
font-weight: 700;
color: #d3bd7b;
}
.modal {
position: fixed;
z-index: 99999999;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0, 0, 0, 0.8);
display: flex;
justify-content: center;
align-items: center;
margin: 0;
padding: 0;
}
.modal-content {
background: rgba(20, 20, 20, 0.9);
border: 3px solid #634d23;
border-radius: 5px;
padding: 20px;
max-width: 600px;
max-height: 80vh;
overflow-y: auto;
color: #d9c27e;
font-family: 'Trajan Pro', 'Times New Roman', serif;
}
.modal-content h2 {
text-align: center;
color: #ffcc00;
position: relative;
top: -2em;
margin-bottom: -2em;
}
.close-button {
color: #ffcc00;
float: right;
font-size: 28px;
font-weight: bold;
cursor: pointer;
position: relative;
top: -1.7em;
}
.modal-section {
display: flex;
flex-wrap: wrap;
}
.modal-column {
flex: 1;
min-width: 290px;
padding: 38px;
margin-bottom: -5em;
margin-top: -3em;
color: #e9e9e9;
}
.modal-content ul {
list-style-type: disc;
padding-left: 20px;
line-height: 1.6;
}
.continue-button {
padding: 10px 20px;
background-color: #3e3423;
color: #d9c27e;
border: 1px solid #634d23;
border-radius: 3px;
cursor: pointer;
font-family: 'Trajan Pro', 'Times New Roman', serif;
font-size: 16px;
transition: all 0.2s;
text-shadow: 1px 1px 1px #000;
}
.continue-button:hover {
background-color: #3e3423;
}
</style>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>>
<<if $escalerarota isnot true>>
<<dialogue "" "The walls are covered in cracks and moss. A rusty staircase clings to the wall, its structure corroded by time. Each step looks fragile, as if it could give way under a single footstep." "description">>
<<addDialogue "" "To your right, half-covered in vines, a weathered wooden door stands slightly open. Through it, you can see the overgrown remains of what might have once been a garden." "description">>
<<else>>
<<dialogue "" "The walls are covered in cracks and moss. Where there was once a staircase, only twisted remnants of rusted metal remain. The steps have collapsed, leaving a dangerous gap that blocks access to the upper floors." "description">>
<<addDialogue "" "Near the base of the wall, partially obscured by debris and creeping ivy, you spot an old wooden door slightly ajar. Beyond it, faint light filters through an overgrown garden path." "description">>
<</if>>
<<if $mayorcall gte 1 && $ironbaritem isnot true>>
<<if $escalerarota is true && $ironbaritem isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Inspect the broken stair|ironbarStair]]">>
<<addDialogue "" "[[Inspect the building|buildinginspect3]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Inspect the building|buildinginspect3]]">>
<<horizontalEnd>>
<</if>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Path to forest|Camino-izquierda2]]">>
<<addDialogue "" "[[Garden]]">>
<<addDialogue "" "[[Road to lake|Camino-derecha2]]">>
<<horizontalEnd>><<if $escalerarota isnot true>>
<<dialogue "" "You observe the building's facade closely, searching for any signs of activity. The peeling paint and broken windows confirm that the place has been abandoned for years. As your gaze shifts to one side, you notice a metal staircase attached to the wall. It's rusty and looks fragile. It's the fire escape." "description">>
<<addDialogue "" "It might still hold my weight, but it's risky." "thoughts">>
<<addImageV "img/events/escalera.png">>
<<else>>
<<dialogue "" "You return to the spot where the ladder gave way. The twisted metal remnants hang crookedly, swaying slightly in the wind, producing a constant, irritating creak that breaks the silence of the place." "description">>
<</if>>
<<if $escalerarota isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Climb up the staircase|brokenstairs]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Back|Camino-intermedio]]">>
<<horizontalEnd>>
<<dialogue "" "You spot the remains of the collapsed staircase—broken wooden planks and twisted metal scattered across the floor. The failed attempt still lingers in your mind, a reminder of how unstable this place truly is." "description">>
<<addDialogue "" "I could have really gotten hurt." "thoughts">>
<<addDialogue "Casey" " This place is falling apart." "talk">>
<<addDialogue "" "You observe the remains of the collapsed staircase, with splintered planks and twisted metal scattered across the floor. Among the debris, something catches your eye—a metal bar still intact, sturdy enough to be useful." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take iron bar|ironbarStair1|?inventoryFull]]">>
<<addDialogue "" "[[Back|Camino-intermedio]]">>
<<horizontalEnd>>
<<dialogue "" "You're at the entrance of what was once a beautiful garden, now turned into a labyrinth of decay. Ahead of you, a cracked stone path stretches through the overgrowth, flanked by moss-covered statues and twisted trees. To the left, a patch of dry bushes parts to reveal a narrower trail, choked by low-hanging branches." "description">>
<<addDialogue "" "To the right, in the shadows, you glimpse what looks like a rusted bench next to a corroded fountain." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go left|Garden-LeftPath]]">>
<<addDialogue "" "[[Main path|Garden-MainPath]]">>
<<addDialogue "" "[[Go right|Garden-RightPath]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Back of the building|Camino-intermedio]]">>
<<horizontalEnd>>
<<script>>
window.setLighting(90);
<</script>><<dialogue "" "As you circle the building, you reach the back, where the windows are sealed and the walls are worn. Overgrown weeds cover old emergency exits, and the air smells of mildew. An abandoned courtyard stretches out in front of you, with sealed doors that seem forgotten." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Back of the building|Camino-intermedio]]">>
<<addDialogue "" "[[Road to lake|Camino-derecha]]">>
<<horizontalEnd>><<dialogue "" "You grab the metal bar in your hands. It’s cold and solid, and although slightly rusted, it seems sturdy enough to be useful." "description">>
<<addDialogue "Casey" " Maybe it’ll come in handy." "talk">>
<<horizontalStart>>
<<addDialogue "" " [[Back|Camino-intermedio]]">>
<<horizontalEnd>>
<<set $ironbarStair = true>>
<<set $ironbaritem = true>>
<<script>>
const itemKey = 'rustedbar';
const itemName = 'Rusted Bar';
const itemDescription = 'You picked it up after the fire escape collapsed. Thick, heavy, and corroded by time, it looks like part of the original railing.';
const itemValue = 75;
const weaponDamage = 10;
const imagePath = 'img/items/weapons/rustedbar.png';
// Add to Item Database
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "tool", // Melee weapons use "tool" category
type: "weapon", // Must be "weapon"
weaponType: "melee", // Critical: defines as melee weapon
damage: weaponDamage, // Base damage
image: imagePath,
stackable: false,
maxStack: 1,
value: itemValue,
weight: 0.5, // Lighter than crowbar
isSellable: true
};
// Add to Shop System
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 3,
img: imagePath
};
// Add to Inventory with Notification
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
// Refresh Shop UI
window.ShopSystem.populateSellItems();
<</script>><<dialogue "" "You decide to trust the old staircase, stepping cautiously onto the first rungs. The metal groans under your weight but seems to hold. Just as you begin climbing with more confidence, a sharp and terrifying sound stops you. CRACK! The metal gives way suddenly, and you plummet to the ground." "description">>
<<addDialogue "Casey" "Damn it!" "talk">>
<<addDialogue "" "The impact knocks the wind out of you, and a sharp pain shoots through your side." "description">>
<<addDialogue "Casey" " Oh, crap!" "talk">>
<<addDialogue "" "You slowly sit up, feeling the tender area. Luckily, it seems there are no serious injuries." "description">>
<<addDialogue "Casey" " Alright... I'm fine. But I'll have to find another way forward." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Camino-intermedio]]">>
<<horizontalEnd>>
<<set $escalerarota = true>>
<<script>>
window.HealthSanitySystem.removeHealth(10)
<</script>>
<<dialogue "" "You observe the building's facade, searching for an entrance. The brick wall is weathered, but you don’t find any openings or signs of a visible entry. Everything seems locked and abandoned." "description">>
<<addDialogue "" "All the windows are barred, blocking any attempt to get in... or out." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Camino-derecha]]">>
<<horizontalEnd>><<dialogue "" "The fog swirls around the trunks, hiding what lies ahead. Though the lake isn't visible yet, the air already carries its cold, stagnant scent. In addition to the main path leading to the lake, there is a narrow, winding trail that seems to disappear into the mist." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Road to parking|Camino-derecha]]">>
<<addDialogue "" "[[Winding Path|widingpath]]">>
<<addDialogue "" "[[Lake|Lake]]">>
<<horizontalEnd>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "You decide to venture deeper into the forest, leaving behind any trace of safety. The tall, twisted trees form a natural canopy that blocks almost all light. The ground, covered in leaves and gnarled roots, crunches beneath your steps. A chilling wind blows through the branches, carrying distant whispers and the faint echo of howls. As you press on, the forest seems to close in around you, its stillness broken occasionally by the fleeting movement of something in the shadows." "description">>
<<default>>
<<dialogue "" "You walk through the trees in the forest, carefully checking every corner, but you find nothing out of the ordinary. Silence accompanies you as you keep searching without success." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Continue exploring]]">>
<<addDialogue "" "[[Back to the path|Forest]]">>
<<horizontalEnd>>
<<dialogue "" "You walk through the trees in the forest, carefully checking every corner, but you find nothing out of the ordinary. Occasionally, a distant howl can be heard faintly in the distance, barely noticed as you continue searching without success." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue exploring|Continue exploring2]]">>
<<addDialogue "" "[[Back to the path|Forest]]">>
<<horizontalEnd>>
<<dialogue "" "You search the area carefully, your eyes scanning every corner and crevice, but find nothing of interest. The ground is bare, and the surrounding foliage offers no clues. A sense of unease settles over you as you realize there's nothing here that could help you. It's as if whatever you're looking for has been erased, hidden away, or simply never existed. The silence grows heavier, the absence of anything meaningful almost more unsettling than the unknown. You sigh, frustrated, and prepare to move on, but a lingering feeling of something missed nags at the back of your mind." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue exploring]]">>
<<addDialogue "" "[[Back to the road|Forest]]">>
<<horizontalEnd>>
<<if $Cave isnot true>>
<<goto "ExploreCave">>
<</if>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "The fresh air of the forest mixes with the crunching of dry leaves beneath your boots. You move cautiously between the trees, each step taking you deeper into the darkness of the place. The shadows of the bare branches stretch long, creating strange shapes that seem to move on their own. The stillness is unsettling, but the need to keep moving pushes you forward." "description">>
<<addDialogue "" "Suddenly, something on the ground catches your attention. You crouch down, carefully observing the tracks that carve through the damp mud. They're fresh, deep, with sharp edges. They don't seem to belong to any common animal you've seen before. There's something odd about their shape, as if they're larger than what a normal animal would leave behind. The tracks seem to lead towards a denser part of the forest, where light is absent, almost as if the darkness swallows it whole. You stop for a moment, your mind beginning to make connections." "description">>
<<addDialogue "" "What kind of animal leaves such large and perfectly marked tracks? Maybe a wolf... but these tracks aren't normal size. Perhaps something else, something bigger..." "thoughts">>
<<addDialogue "Casey" "What am I getting myself into here?" "talk">>
<<addDialogue "" "Thinking about it causes a slight pressure in your chest, but you keep your gaze on the trail, following the tracks." "description">>
<<addDialogue "" "The sound of the wind rustling the leaves is now a distant echo. Each step seems to bring you closer to something, but you can’t shake the question: Closer to what exactly?" "description">>
<<default>>
<<dialogue "" "The tracks are still there, fresh and deep, as if the wolf passed by just moments ago. Their sharp edges make it clear they are recent, and the trail seems to lead deeper into the darker part of the forest. The sense that something is still nearby lingers, and with every step you take, you’re reminded that you're not alone. The tracks, so large and menacing, only confirm that the threat continues to stalk in the shadows." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Follow tracks|ExploreCave2]]">>
<<addDialogue "" "[[Back to the path|Forest]]">>
<<horizontalEnd>><<dialogue "" "After what feels like an eternity, you arrive at the entrance of a cave. The air here is cooler, the faint smell of damp earth and something darker lingering in the stillness. The trees part to reveal the opening, a jagged maw in the side of the hill. The ground near the entrance is marked with deep paw prints, larger and more twisted than any wolf's track you've seen before." "description">>
<<addDialogue "" "A low growl echoes from inside, a sound that doesn’t belong to any creature you’ve encountered. It resonates through the cave’s mouth. You hesitate, your breath catching in your throat. The hairs on the back of your neck stand up as the growl grows louder, more distinct." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter in the cave|ForestCave]]">>
<<addDialogue "" "[[Back to the path|Forest]]">>
<<horizontalEnd>>
<<set $Cave = true>><<dialogue "" "Just as you approach the entrance to the cave, a howl shatters the silence of the night, a wild cry that chills you to the core. The sound grows louder, clearer, until you can hear the crunch of dry leaves beneath heavy, purposeful footsteps. From the shadows, two figures emerge, their eyes gleaming with deadly intensity. They move with unsettling agility, as if they know you’ve seen them. There’s no doubt—they’ve come for you." "description">>
<<addDialogue "" "Before you can react, one of the wolves lets out a low growl, while the other steps forward, locking eyes with you. In the blink of an eye, both of them lunge toward you, their razor-sharp teeth gleaming under the moonlight. The danger is imminent, and you have no choice but to prepare for the attack." "description">>
<<addDialogue "Casey" " Fuck!" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|caveShoot]]">>
<<horizontalEnd>>
<<set $cavefight = 1>>
<<timed 2s>>
<<script>>
playSoundDirect('wolf-howl.mp3');
<</script>>
<</timed>>
<<run startAdvancedBattle([
{
type: 'normalWolf',
hp: 80,
distance: 50,
randomDistance: true,
speed: "6-8",
minMovement: 6,
maxMovement: 8,
damage: 8,
DamageIgnore: {
'pistol': 0.7,
'rifle': 0.6,
'shotgun': 0.0,
'melee': 0.5,
'incendiary': 0.0,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.8,
'.45': 0.7,
'slugs': 0.9
}
},
{
type: 'normalWolf',
hp: 80,
distance: 60,
randomDistance: true,
speed: "6-8",
minMovement: 6,
maxMovement: 8,
damage: 8,
DamageIgnore: {
'pistol': 0.7,
'rifle': 0.4,
'shotgun': 0.0,
'melee': 0.5,
'incendiary': 0.0,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.7,
'.45': 0.7,
'slugs': 0.9
}
}
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<if $FightTutorial isnot true>>
<<set $FightTutorial = true>>
<div id="combatTutorialModal" class="modal">
<div class="modal-content">
<span class="close-button" onclick="document.getElementById('combatTutorialModal').style.display='none'">×</span>
<h2>Combat Tutorial with Firearms and Melee Weapons</h2>
<p><strong>Goal:</strong> Defeat all enemies without dying.</p>
<div class="modal-section">
<div class="modal-column">
<strong>Controls:</strong>
<ul>
<li><strong>Firearms:</strong>
<ul>
<li>Equip a firearm (such as a pistol, shotgun, or rifle) and the corresponding ammunition to shoot.</li>
<li>Press the "Shoot" button. If facing multiple enemies at once, press the "Shoot" button and then select the enemy card you want to attack.</li>
</ul>
</li>
<li><strong>Melee Attacks and Weapons: (Next Update)</strong>
<ul>
<li>If you have no weapons, you can perform melee attacks by waiting for the enemy to get close enough. These attacks deal less damage, but you can equip melee weapons to improve them.</li>
<li>Equip a melee weapon (such as a knife, bat, or machete) to perform close-range attacks when enemies are close enough.</li>
<li><strong>Note:</strong> Equipping a melee weapon will automatically unequip any equipped firearm, and vice versa.</li>
<li>Damage varies depending on the melee weapon used.</li>
</ul>
</li>
</ul>
</div>
<div class="modal-column">
<strong>Additional Tips:</strong>
<ul>
<li>Different types of ammunition can deal extra damage with firearms.</li>
<li>You can find weapon modifications that increase damage or accuracy.</li>
<li>Different rooms and hallways have various types of lighting, which affect your accuracy. Use the flashlight (when you have the flashlight) in dark places to gain an accuracy bonus.</li>
</ul>
</div>
</div>
<div style="text-align: center; margin-top: 20px;">
<button id="continueButton" class="continue-button">Continue</button>
</div>
</div>
</div>
<<script>>
$(document).ready(function () {
$("#combatTutorialModal").css("display", "flex");
$(document).off("click", "#continueButton, .close-button").on("click", "#continueButton, .close-button", function () {
$("#combatTutorialModal").css("display", "none");
});
});
<</script>>
<<timed 300ms>>
<<script>>
playSoundDirect('button.mp3');
<</script>>
<</timed>>
<</if>>
<style>
p {
text-align: center;
color: #e9e9e9;
}
b, strong {
font-weight: 700;
color: #d3bd7b;
}
.modal {
position: fixed;
z-index: 99999999;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0, 0, 0, 0.8);
display: flex;
justify-content: center;
align-items: center;
margin: 0;
padding: 0;
}
.modal-content {
background: rgba(20, 20, 20, 0.9);
border: 3px solid #634d23;
border-radius: 5px;
padding: 20px;
max-width: 600px;
max-height: 80vh;
overflow-y: auto;
color: #d9c27e;
font-family: 'Trajan Pro', 'Times New Roman', serif;
}
.modal-content h2 {
text-align: center;
color: #ffcc00;
position: relative;
top: -2em;
margin-bottom: -2em;
}
.close-button {
color: #ffcc00;
float: right;
font-size: 28px;
font-weight: bold;
cursor: pointer;
position: relative;
top: -1.7em;
}
.modal-section {
display: flex;
flex-wrap: wrap;
}
.modal-column {
flex: 1;
min-width: 290px;
padding: 38px;
margin-bottom: -5em;
margin-top: -3em;
color: #e9e9e9;
}
.modal-content ul {
list-style-type: disc;
padding-left: 20px;
line-height: 1.6;
}
.continue-button {
padding: 10px 20px;
background-color: #3e3423;
color: #d9c27e;
border: 1px solid #634d23;
border-radius: 3px;
cursor: pointer;
font-family: 'Trajan Pro', 'Times New Roman', serif;
font-size: 16px;
transition: all 0.2s;
text-shadow: 1px 1px 1px #000;
}
.continue-button:hover {
background-color: #3e3423;
}
</style>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<if $safecave isnot true>>
<<dialogue "" "The beam of your flashlight slices through the darkness like a knife. Behind you, the exit flickers faintly, a distant promise. But to your right, a narrow path vanishes into the blackness, leading deeper into the cave." "description">>
<<else>>
<<dialogue "" "The path continues into the darkness. The air feels thicker now, but everything remains still, with no sound or movement." "description">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Go through the cave|Cave2]]">>
<<addDialogue "" "[[Exit cave|Caveoutside]]">>
<<horizontalEnd>><<if window.gameState.lanternOn>>
<<goto "Cavelight">>
<<else>>
<<dialogue "" "You step into the cave cautiously, but as soon as you take a few steps inside, the darkness becomes absolute. You can't see anything. You move forward a little more, feeling your way blindly, but the uncertainty fills you with unease." "description">>
<<addDialogue "Casey" "It's impossible... I can't see." "talk">>
<<addDialogue "" "Without light, I can't go any further." "thoughts">>
<<addDialogue "" "You grit your teeth and decide that the best choice is to turn back toward the exit." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit cave|Caveoutside]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<</if>>
<<dialogue "" "The main garden path winds between overgrown bushes and the remnants of what were once ornamental flowers. The gravel, uneven and damp with fallen leaves, crunches under the weight of time. To one side, a blackened marble statue depicts a female figure, her face worn away by years of decay, moss climbing her base like hungry fingers. The stillness of the place is deepened by the shadows cast by the trees." "description">>
<<horizontalStart>>
<<if $inveradero isnot true>>
<<addDialogue "" "[[Go ahead|GreenhouseEntrada]]">>
<<else>>
<<addDialogue "" "[[Go to the Greenhouse|GreenhouseEntrada]]">>
<</if>>
<<addDialogue "" "[[Garden]]">>
<<horizontalEnd>><<dialogue "" "The left path has turned eerie due to neglect. The tiles on the ground are cracked and covered in rotting leaves, while the vegetation has spilled beyond the edges of the walkway." "description">>
<<horizontalStart>>
<<if $warehouse isnot true>>
<<addDialogue "" "[[Go ahead|BigWarehouse]]">>
<<else>>
<<addDialogue "" "[[Go to the warehouse|BigWarehouse]]">>
<</if>>
<<addDialogue "" "[[Garden]]">>
<<horizontalEnd>>
<<dialogue "" "The path leading off to the right side of the garden is barely discernible beneath the overgrown underbrush. Twisted shrubs and fallen branches intertwine across the old stone walkway, forming a natural barrier that blocks the way forward. A few trees have grown unchecked, leaning over the path until it’s completely sealed off. There are some barrels nearby. There’s no way to pass without something to clear the way." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" "I can't go this way." "talk">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Check barrels|GardenBarrels]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Garden]]">>
<<horizontalEnd>>
<<if $oldshed isnot true>>
<<dialogue "" "You step onto the narrow path, surrounded by shadows and the crunch of earth and branches beneath your feet. As you move forward, the trail becomes more defined, and the air fills with a deep silence. At the end of the path, hidden among the vegetation, you discover a small shed, concealed and secluded, as if it had been waiting to be found." "description">>
<<addImage "img/events/shed.png">>
<<horizontalStart>>
<<addDialogue "" "[[Path to lake|Camino-LagoParking]]">>
<<addDialogue "" "[[Old shed|shed]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "You return to the path, the earth crunching beneath your feet. The trail remains clear, and the silence deep. At the end, the shed is still there, hidden among the vegetation, as if waiting to be found again." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Path to lake|Camino-LagoParking]]">>
<<addDialogue "" "[[Old shed|shed]]">>
<<horizontalEnd>>
<</if>>
<<dialogue "" "The lake stretches before you, its surface unsettlingly calm, like a dark mirror reflecting the darkness of the night. The fog covers the water, making it difficult to distinguish between the surface and the mist. The smell of stagnant water weighs heavily in the air, and the faint sound of water lapping against the shore is almost drowned out by the overwhelming silence." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Road to parking|Camino-LagoParking]]">>
<<addDialogue "" "[[Lakeshore]]">>
<<horizontalEnd>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "You push open the shed door, which creaks as it opens, stepping into the dimness. Inside, the air is thick, heavy with the scent of old wood and dust. Around you, several stacked boxes and a lone barrel sit on the floor, covered in cobwebs and signs of neglect, as if the place hadn't been touched in years. Against the far wall, an old wooden desk stands unevenly, one leg slightly shorter than the others. Its surface is scratched and dented from age and use. Sitting atop the desk is a dusty, outdated computer tower and monitor, the screen dark and cracked in one corner, as if it had been punched or dropped." "description">>
<<if $CovertizoBuscar isnot 1>>
<<horizontalStart>>
<<addDialogue "" "[[Check desk|shedDesk]]">>
<<addDialogue "" "[[Old Vending machine|Vendingmachine]]">>
<<addDialogue "" "[[Search in the crates|shedCrates]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Check desk|shedDesk]]">>
<<addDialogue "" "[[Old Vending machine|Vendingmachine]]">>
<<addDialogue "" "[[Search in the crates|shedNocrates]]">>
<<horizontalEnd>>
<</if>>
<<default>>
<<dialogue "" "You return to the shed. The air is still heavy, and cobwebs cover the untouched boxes and barrel in their abandonment." "description">>
<<if $CovertizoBuscar isnot 1>>
<<horizontalStart>>
<<addDialogue "" "[[Check desk|shedDesk]]">>
<<addDialogue "" "[[Old Vending machine|Vendingmachine]]">>
<<addDialogue "" "[[Search in the crates|shedCrates]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Check desk|shedDesk]]">>
<<addDialogue "" "[[Old Vending machine|Vendingmachine]]">>
<<addDialogue "" "[[Search in the crates|shedNocrates]]">>
<<horizontalEnd>>
<</if>>
<</switch>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|widingpath]]" "center">>
<<dialogue "" "The wooden desk is old and worn, its surface covered in scratches and dark stains. One of the legs wobbles slightly, and dust clings to every corner." "description">>
<<addImage "img/events/deskshed.png">>
<<horizontalStart>>
<<addDialogue "" "[[Check the computer|save1]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|shed]]" "center">>
<<dialogue "" "An old vending machine, the glass is so dirty that you can barely see anything, although it seems like there's still something inside" "description">>
<<addImage "img/vm.png">>
<<addDialogueInput "Enter vending machine code:" "vendingCode" "" "default" "$cheatcodeb" "@Passage">>
<<addSupportButtonInline "✨ Support us ✨">>
<<addBackButton "Back" "shed">><<if $SearchShedCrates isnot true>>
<<set $Randomsearch = random(2)>>
<<set $SearchShedCrates = true>>
<</if>>
<<if $Randomsearch is 0>>
<<set $Crates= 1>>
<<elseif $Randomsearch is 1>>
<<set $Crates= 2>>
<<else>>
<<set $Crates= 3>>
<</if>>
<<if $Crates is 1>>
<<dialogue "" "You find 5 cheap batteries. " "description">>
<<addImage "img/events/shedcrates.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take batteries|shedbat|?!canPickupBattery]]">>
<<horizontalEnd>>
<<elseif $Crates is 2>>
<<dialogue "" "You find 25 rounds 9mm." "description">>
<<addImage "img/events/shedcrates.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take ammo|shedbul|?!canPickupPistolAmmo]]">>
<<horizontalEnd>>
<<elseif $Crates is 3>>
<<dialogue "" "You find 15 incendiary rounds 9mm." "description">>
<<addImage "img/events/shedcrates.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take ammo|shedbul2|?!canPickupPistolAmmoExpansive]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|shed]]" "center">>
<<dialogue "" "The crates has already been looted; there’s nothing left." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Back|shed]]">>
<<horizontalEnd>> <<switch visited()>>
<<case 1>>
<<dialogue "" "Surprisingly, the computer still works. The screen flickers to life, displaying an old but functional operating system." "description">>
<<default>>
<<dialogue "" "The computer still works. The screen flickers to life, displaying an old but functional operating system." "description">>
<</switch>>
<<addImage "img/events/deskshed.png">>
<<horizontalStart>>
<<addDialogue "" "<div class='main-menu-btn' id='save-button'>Save/Load</div>">>
<<horizontalEnd>>
<<addDialoguePos "" "[[Go back|shed]]" "center">>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<script>>
stopAllMusic();
setBackgroundMusic('outsidetheme.mp3');
<</script>>
<<dialogue "" "You grab the batteries and stash them in your backpack." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Back|shed]]">>
<<horizontalEnd>>
<<addItem "battery" 5>>
<<set $CovertizoBuscar = 1>>
<<dialogue "" "You grab the ammo and the lone medium battery." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Back|shed]]">>
<<horizontalEnd>>
<<script>>
window.addItemFromDatabase('pistol_ammo', 25);
<</script>>
<<set $CovertizoBuscar = 1>><<dialogue "" "You grab the incendiary ammo and the lone medium battery and store them in your backpack." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Back|shed]]">>
<<horizontalEnd>>
<<script>>
window.addItemFromDatabase('pistol_ammo_incendiary', 15);
<</script>>
<<set $CovertizoBuscar = 1>><<switch visited()>>
<<case 1>>
<<dialogue "" "The ground beneath your feet becomes softer, damp with the moisture rising from the lake. The fog thickens, curling around your ankles as you approach the shore. The faint whisper of the trees seems distant, swallowed by the dense air. The shore is almost within reach, but something about the stillness feels unnatural. The dark, cold water waits in silence, as if holding secrets just beneath its surface." "description">>
<<default>>
<<dialogue "" "The fog thickens as you approach, partially covering the lake. The water appears more restless than usual, as if it were a sea or ocean instead of a lake. The air is dense, and the shore feels unnervingly silent." "description">>
<</switch>>
<<if $CabinFind isnot 1>>
<<horizontalStart>>
<<addDialogue "" "[[Explore the lake|CabinIntro]]">>
<<horizontalEnd>>
<</if>>
<<if $CabinFind gte 1>>
<<horizontalStart>>
<<addDialogue "" "[[Path to cabin|Camino-Cabin]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back to the lake|Lake]]" "center">>
<<dialogue "" "As you make your way through the underbrush near the lake, your steps come to a halt. Between the branches and the reflection on the water, you catch sight of a small wooden cabin. At first glance, it looks as abandoned as everything else around it, with a worn roof and walls streaked with mold—but something makes you frown: a faint light flickers in one of the windows. You freeze, watching intently." "description">>
<<addDialogue "" "Light? Here, in the middle of nowhere?" "thoughts">>
<<addDialogue "Casey" "Could be Rust and Dina… or maybe someone else. I don’t know, something about this place just doesn’t sit right with me." "talk">>
<<addImage "img/events/cabin.png">>
<<horizontalStart>>
<<addDialogue "" "[[Go to cabin|Cabin]]">>
<<horizontalEnd>>
<<set $CabinFind = 1>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "The Path to cabin is surrounded by overgrown weeds, and the air feels heavier here. The faint light in the window remains, an unexpected presence in this forgotten place, leaving you with the feeling that something doesn't quite fit in the stillness of the surroundings." "description">>
<<default>>
<<dialogue "" "The Path to cabin is surrounded by overgrown weeds, and the air feels heavier here. The cabin is near." "description">>
<</switch >>
<<horizontalStart>>
<<addDialogue "" "[[Road to parking|Camino-LagoParking]]">>
<<addDialogue "" "[[Go to cabin|CabinDoor]]">>
<<addDialogue "" "[[Go to lake|Lake]]">>
<<horizontalEnd>>
<<dialogue "" "The cabin door is ajar, creaking softly as the wind pushes it. The faint light inside flickers, casting shadows in the dimness." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter cabin|Cabin]]">>
<<addDialogue "" "[[Back to lake|Camino-Cabin]]">>
<<horizontalEnd>>
<<if $CabinMeet is 1 && $carquest isnot 1>>
<<goto "carquest">>
<</if>>
<<if $CabinInside is true>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('outsidetheme.mp3', 4000);
}, 1000);
<</script>>
<</if>>
<<set $CabinInside = false>>
<<script>>
window.setLighting(90);
<</script>><<dialogue "" "Franklin is in the cabin, standing by the table, carefully examining the scattered objects, unaware of your presence." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Talk to Franklin|Conserje]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|CabinDoor]]" "center">>
<<if $CabinMeet isnot 1 && $DoctorTalk is 1>>
<<goto "CabinMeet">>
<</if>>
<<if $DoctorTalk isnot 1>>
<<goto "cabin">>
<</if>>
<<set $CabinInside = true>>
<<if $NoMoreGirl is true>>
<<dialogue "Franklin" "Hey Casey! Do you want something more? " "talk">>
<<else>>
<<dialogue "Franklin" "Hey girl! Do you want something more? " "talk">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Check the shop|Shop]]">>
<<addDialogue "" "[[Questions]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Bye|Cabin]]" "center">>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">><<switch visited()>>
<<case 1>>
<<dialogue "" "As you step into the cabin, the air feels thick with humidity and dust, as if no one has been here in years. In the center of the room stands a table, the only notable piece of furniture, slightly dirty and with objects scattered around in apparent neglect. The light is on, but there’s no one around." "description">>
<<addDialogue "" "There’s no one here... but someone definitely lives here." "thoughts">>
<<addDialogue "" "I should come back later." "talk">>
<<default>>
<<dialogue "" "There’s no one here." "description">>
<<addDialogue "Casey" " I should come back later." "talk">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|CabinDoor]]">>
<<horizontalEnd>>
<<set $CabinCheck = true>>
<<dialogue "" "You push the cabin door open; it creaks loudly as it swings inward. The air inside smells of damp wood and age. A flickering lamp on the table casts dancing shadows across the walls. Sitting in a worn wooden chair is a man whose face is weathered by years and hardship. His gaze is deep and tired, yet it carries the weight of a life lived far beyond what anyone should endure. He wears simple clothes, and his presence feels as rooted as the cabin itself. As you step closer, he slowly lifts his eyes to study you, evaluating your every move with an unsettling calm. The silence stretches between you, but strangely, it doesn’t feel uncomfortable—as if there’s something familiar in the air." "description">>
<<addDialogue "Casey" "Hello, sir. May I ask you a few questions?" "talk">>
<<addDialogue "" "The man studies you a moment longer, his expression stern but not unfriendly, as if he had already expected your arrival. Then, in a deep, rasping voice, he speaks." "description">>
<<addDialogue "Franklin" "I suppose so, but I’ll tell you the same thing I told the other two FBI agents who came before. I can’t help you." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Why not?|ConserjeIntro]]">>
<<addDialogue "" "[[I'm not FBI|ConserjeIntro2]]">>
<<horizontalEnd>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Franklin">>
<<set $FranklinMeet = true>>
<<set $CabinMeet = 1>>
<<unlockCharacterOnly 8>><<dialogue "" "It’s not a bad thing if he thinks I’m with the FBI." "thoughts">>
<<addDialogue "Casey" "Why not? Maybe I can help you remember something you’ve been avoiding. I’m investigating a case at Charles Francis Hospital. Could you tell me more?" "talk">>
<<addDialogue "Franklin" "This… fucking place, ahem… it’s dead to everyone. No one wants to talk about it. The fire… what happened there… and if you keep digging, you might get hurt." "talk">>
<<addDialogue "Casey" "Maybe what happened in that hospital is connected to what’s happening in the city now. There are missing women… if you know anything, no matter how small, I need to hear it." "talk">>
<<addDialogue "Franklin" "You haven’t even told me your name, and you’re already demanding answers. How do you expect me to help if you won’t even offer that courtesy? Everyone has their secrets, but some prefer to keep them until they know who they’re dealing with." "talk">>
<<timed 100ms>>
<<vdialogue "Casey" "Hmm… you’re right. I’m Casey, $McName Casey." "talk">>
<<addDialogue "Franklin" "Franklin Hayes. People call me Frank. And if you’re going to keep pressing me, you better be straight with me—I don’t have time for games." "talk">>
<<addDialogue "" "Despite his words, time seems to be the only thing this man truly possesses." "description">>
<<addDialogue "Franklin" "What happened in that fire should never have been forgotten. But you don’t understand… you have no idea what lies beyond that lake. If you keep going down this path, you’ll cross a line you can’t come back from." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[I won’t go back|ConserjeIntro3]]">>
<<horizontalEnd>>
<</timed>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">><<timed 100ms>>
<<vdialogue "Casey" "I’m not FBI, I’m a private detective. My name’s $McName Casey." "talk">>
<<addDialogue "Franklin" "Ah… well, I guess it doesn’t make much difference. FBI or not, it doesn’t change much. My name’s Franklin Hayes, but everyone calls me Frank." "talk">>
<<addDialogue "Casey" "I’m investigating Charles Francis Hospital… I know something dark happened there. Could you tell me a bit more?" "talk">>
<<addDialogue "" "He watches you carefully, weighing your words, but he doesn’t seem surprised by what you know." "description">>
<<addDialogue "Franklin" "That hospital is dead to everyone. No one wants to talk about what happened there. What occurred… there’s no turning back. People disappeared, yes. And if you keep digging… you might end up like them." "talk">>
<<addDialogue "Casey" "Maybe what happened in that hospital is connected to what’s going on in the city now. Missing women, FBI agents… it’s all tied together. If you know anything, even the smallest detail, I need to hear it." "talk">>
<<addDialogue "Franklin" "What happened there should never have been forgotten. But you don’t understand… you have no idea what lies beyond that lake. If you keep going down this path, you’ll cross a line you can’t come back from." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[I won’t go back|ConserjeIntro3]]">>
<<horizontalEnd>>
<</timed>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">><<dialogue "Casey" "I should start by checking the abandoned cars… and try to find the one Rust and Dina arrived in." "talk">>
<<addDialogue "" "There might be a clue here." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Get moving|CabinDoor]]">>
<<horizontalEnd>>
<<set $carquest = 1>>
<<script>>
addQuestWithStages(
"FBI Vehicle Search",
"Agents Dina Carter and Douglas Cohle disappeared during their investigation. Their vehicle might still be nearby — and could hold valuable evidence.",
[
"Find the FBI vehicle",
"Figure out how to open it and get inside",
],
"📋",
"side",
"fbi_vehicle_quest", // Custom ID
"img/quest.png" // Quest image
);
// Add stage images so completion notifications show the quest image
if (window.questSystem && window.questSystem.quests["fbi_vehicle_quest"]) {
window.questSystem.quests["fbi_vehicle_quest"].stageImages = [
"img/quest.png", // Stage 1
"img/quest.png" // Stage 2
];
}
State.variables.captainQuestId = "fbi_vehicle_quest";
<</script>><<dialogue "Casey" "I’m not backing down." "talk">>
<<addDialogue "" "Well… it’s not like I have many other options." "thoughts">>
<<addDialogue "Casey" "I’m already too deep into this, and I can’t turn my back. If you know anything else, please… tell me." "talk">>
<<addDialogue "" "Franklin crosses his arms, his expression turning serious." "description">>
<<addDialogue "Franklin" "Look, I don’t have all the answers you’re looking for. I worked at that hospital fifteen years ago, back when it was still running. Even then, strange things were happening… but what’s going on now? That’s on a whole different level." "talk">>
<<addDialogue "Casey" "What’s happening now?" "talk">>
<<addDialogue "Franklin" "In the past week, I’ve seen three girls taken there. Always in a black van. They’re brought in sedated or restrained… like they’re objects, not people." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[How does the vehicle look?]]">>
<<horizontalEnd>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">><<dialogue "Casey" "How’s the vehicle looking?" "talk">>
<<addDialogue "Franklin" "It’s a black van, always with tinted windows. I’ve noticed the engine never fully shuts off… like they’re ready to take off at a moment’s notice." "talk">>
<<addDialogue "Casey" "I see…" "talk">>
<<addDialogue "" "Tracking it is impossible… at least for now." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Didn’t you do anything?]]">>
<<horizontalEnd>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">><<dialogue "Casey" "Didn’t you do anything?" "talk">>
<<addDialogue "Franklin" "Of course I did something. I called the police several times. At first, they didn't take me seriously, but the last time two FBI agents came. They asked me questions, checked the place, but..." "talk">>
<<addDialogue "Casey" "What?" "talk">>
<<addDialogue "Franklin" "They arrived two days ago. Since then, I haven’t seen them come out. Their car is still there, in the parking lot, gathering dust, like the hospital swallowed them whole." "talk">>
<<addDialogue "" "Where could Rust and Dina have gone?" "thoughts">>
<<addDialogue "Casey" "Did they say their names?" "talk">>
<<addDialogue "Franklin" "Yes, the man introduced himself as Douglas Cohle, and the woman as Dina Carter. They seemed sure of what they were doing, but now... I can’t help but think that place swallowed them up too." "talk">>
<<horizontalStart>>
<<addDialogue "" " [[Who takes them?]]">>
<<addDialogue "" "[[And the girls?]]">>
<<horizontalEnd>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">><<dialogue "Casey" "Who takes them?" "talk">>
<<addDialogue "Franklin" "I don’t know exactly who they are. I’ve never seen their faces clearly. They always stay in the shadows, but.... the Doctor... He is waiting at the entrance, like he’s receiving a package." "talk">>
<<addDialogue "Casey" "That sounds horrifying… Wait a minute… are you talking about Doctor White?" "talk">>
<<addDialogue "" "The doctor is my main suspect, but now I have a witness." "thoughts">>
<<addDialogue "Franklin" "Yes, the Doctor… He just waits at the entrance of the hospital. Steps out to greet them, glances quickly, then disappears back inside. It’s like they’re delivering a package." "talk">>
<<addDialogue "Casey" "A human package, you mean." "talk">>
<<addDialogue "Franklin" "Exactly. Like a sack of meat…" "talk">>
<<if $Ask2 isnot 1>>
<<horizontalStart>>
<<addDialogue "" "[[And the girls?]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[About the last girl]]">>
<<horizontalEnd>>
<</if>>
<<set $Ask1 = 1>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">><<dialogue "Casey" "And the girls? What can you tell me about them?" "talk">>
<<addDialogue "Franklin" "Two of them… I don’t remember them clearly. It was night, and the place was dark. I could barely make out their faces. What I do remember is that they were completely sedated. One of them… a redhead, I remember that." "talk">>
<<addDialogue "Casey" "What else do you remember about her?" "talk">>
<<addDialogue "Franklin" "Not much, honestly. She was asleep the whole time. The only thing that really stuck with me was the color of her hair—so bright, even in the dark." "talk">>
<<addDialogue "Casey" "And the others?" "talk">>
<<addDialogue "Franklin" "I didn’t get a good look at the first one. But the last one… that last one I remember perfectly." "talk">>
<<if $Ask1 isnot 1>>
<<horizontalStart>>
<<addDialogue "" "[[Who takes them?]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[About the last girl]]">>
<<horizontalEnd>>
<</if>>
<<set $Ask2 = 1>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">>
<<script>>
addQuestWithStages(
"Kidnapped girls",
"Infiltrate the dark depths of the abandoned hospital and navigate its forgotten corridors. Somewhere within these walls, the missing girls are waiting to be found. (No more content for now)",
[
"Find the kidnapped girls",
],
"📋",
"main",
"kidnap_quest", // Custom ID
"img/quest.png" // Quest image
);
// Add stage images so completion notifications show the quest image
if (window.questSystem && window.questSystem.quests["kidnap_quest"]) {
window.questSystem.quests["kidnap_quest"].stageImages = [
"img/quest.png", // Stage 1
];
}
State.variables.captainQuestId = "kidnap_quest";
<</script>>
<<dialogue "Casey" "You remember the last girl. What can you tell me about her?" "talk">>
<<addDialogue "Franklin" "The last one… I remember her well. She was blonde, with long, loose hair. Like the others, she was sedated… like a sack of potatoes. It was three days ago, the night before the two FBI agents disappeared." "talk">>
<<addDialogue "Casey" "And what else? Did you notice anything different about her?" "talk">>
<<addDialogue "Franklin" "No. Same as always. They were all sedated, completely out of it, not a shred of consciousness. All very pretty, of course, but in the end… just empty bodies someone delivered there. I only saw the last one for a few seconds; there wasn’t much to see." "talk">>
<<addDialogue "Casey" "But something must have caught your attention!" "talk">>
<<addDialogue "" "Franklin pauses, thoughtful. His eyes scan you more carefully, lingering briefly on your face, then drifting down your figure for a moment before he speaks." "description">>
<<addDialogue "Franklin" "Well… now that you mention it… I can’t really say. She was blonde… like you. I don’t know why, but you remind me of… Wait a minute." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[What is wrong?]]">>
<<horizontalEnd>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">><<dialogue "Casey" "What's wrong?" "talk">>
<<addDialogue "Franklin" "The girl… I don’t know. She was like the others, sure, but now that I’m really looking at you, your face made me think of her. She was younger, of course, but her face, her hair… She looked almost identical to you. Don’t you think that’s strange?" "talk">>
<<addDialogue "Casey" "What do you mean, identical? What are you trying to say?" "talk">>
<<addDialogue "" "Identical to me? Is it possible that…? Angelica! Oh my God… It can’t be… I shouldn’t get my hopes up…" "thoughts">>
<<addDialogue "Franklin" "I don’t know, girl. It’s not that I mistook you for her, but… when I looked at you, something about you brought her back to mind. She wasn’t awake, of course, but even if she was younger, the resemblance was… striking. Almost like you two were the same person. I can’t explain it, but everything just lines up somehow. Maybe it’s a sign you should get out of here. As soon as you can." "talk">>
<<addDialogue "Casey" "Are you sure about what you’re saying? It can’t be…" "talk">>
<<addDialogue "" "Your heart pounds fiercely, your mind racing with doubts." "description">>
<<addDialogue "" "Maybe… Yes! It’s Angelica! My little sister… Angi…" "thoughts">>
<<addDialogue "" "How did she end up here? Where has she been all this time?" "thoughts">>
<<addDialogue "" "If she’s here, she’s in danger. I have to find her!" "thoughts">>
<<addDialogue "Franklin" "Look, girl, I don’t know who she is or who you are. I’m just telling you what I saw and what I remembered just now. If you ask me, I’d say this isn’t a coincidence. But whatever it is… staying here won’t do you any good." "talk">>
<<addDialoguePos "" "[[Never]]" "center">>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">>
<<script>>
addQuestWithStages(
"Sister",
"Investigate the Charles Francis Psychiatric Hospital and uncover the truth behind your sister Angela's disappearance. Every clue you find brings you closer to finding her. (No more content for now)",
[
"Find out where your sister Angela is."
],
"📋",
"main",
"sister_quest",
"img/quest.png"
);
if (window.questSystem && window.questSystem.quests["sister_quest"]) {
window.questSystem.quests["sister_quest"].stageImages = [
"img/quest.png"
];
}
State.variables.captainQuestId = "sister_quest";
<</script>><<dialogue "Casey" "I’m not going to give up, no matter what happens. I won’t stop searching, even if it’s the last thing I do." "talk">>
<<addDialogue "Franklin" "You're playing with fire, girl. You can’t face all of this alone. There are things here you don’t understand—things no one understands." "talk">>
<<addDialogue "Casey" "And stop calling me ‘girl.’ I’m not a kid. What I don’t understand is why no one has done anything until now. If I have to be the one to put an end to this, then so be it." "talk">>
<<addDialogue "Franklin" "You're determined, huh? Fine… If you're really going through with this, I might have something that could help you. I’ve picked up a few things around here. I’m no saint, but I’ve learned how to survive. They're not free, of course." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[What things?|shoptalk]]">>
<<horizontalEnd>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">><<dialogue "Casey" "Stuff? What stuff?" "talk">>
<<addDialogue "Franklin" "Some things that could come in handy. I’ve picked up what people leave behind: meds, first aid kits, and other useful stuff. I even have ammo! So don’t hesitate to check out my little 'shop'." "talk">>
<<addDialogue "Casey" "Ah, I see… a scavenger making use of what others leave behind. Pretty practical, I guess." "talk">>
<<addDialogue "Franklin" "Exactly. People survive out here however they can. I just make what’s left useful." "talk">>
<<addDialogue "Casey" "Alright, I can’t deny it’s helpful… Just don’t cause me any trouble." "talk">>
<<addDialogue "Franklin" "Deal, girl. Nobody survives here by playing nice. If you need anything, you know where to find me." "talk">>
<<addDialogue "" "Enough with the 'girl'… it’s really starting to get on my nerves." "thoughts">>
<<if $askdoc isnot 1>>
<<horizontalStart>>
<<addDialogue "" "[[About the Doctor]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Bye|Cabin]]" "center">>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">><<dialogue "Casey" "Franklin, I need to know something else. What do you know about Doctor White?" "talk">>
<<addDialogue "Franklin" "Doctor White… I don’t like that name one bit." "talk">>
<<addDialogue "Casey" "Who is he?" "talk">>
<<addDialogue "Franklin" "He was in charge here. Brilliant, they say… but always a little off. The other staff avoided him, and the patients… well, some came out of his office worse than when they went in, and others… never came out at all." "talk">>
<<addDialogue "Casey" "Worse how?" "talk">>
<<addDialogue "Franklin" "Those who stayed… some changed. Became stranger, more aggressive. Others just disappeared. After Charles Francis shut down, things were quiet for a while. At first, just curious folks, teenagers looking for thrills… you know how it goes. But over the years… I’ve been living here for over fifteen years, Casey. Nothing ever happened. Until about three months ago, I started seeing lights in the building, movement in the windows… only at night." "talk">>
<<addDialogue "Casey" "And the Doctor?" "talk">>
<<addDialogue "Franklin" "Yeah… I’ve seen him. And he wasn’t alone. A few months back, I saw him go in with people. Patients, or at least that’s what they looked like… some could barely walk, others seemed normal, calm. But the women in nurse uniforms… they moved strangely, like… I don’t know… drugged. One thing’s certain—I’ve never seen anyone come out." "talk">>
<<addDialogue "Casey" "And after that you didn’t do anything else? You didn’t try calling again?" "talk">>
<<addDialogue "Franklin" "Call who? The police? They already came once, and they barely listened to me. Believe me, nobody takes an old janitor living next to an abandoned hospital seriously. They think I’m crazy… or that I should mind my own business." "talk">>
<<addDialogue "Casey" "Yeah, but still… didn’t you try to find out more? Go in and see what was happening." "talk">>
<<addDialogue "Franklin" "Look, Casey… I already told you: what happens in there isn’t my business. I stay out of trouble and take in what I can see." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Call him out]]">>
<<addDialogue "" "[[Let it go]]">>
<<horizontalEnd>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">>
<<set $askdoc = 1>><<dialogue "" "This man… calling me 'girl'…" "thoughts">>
<<addDialogue "Casey" "Franklin. If you went inside, you saw something. Let’s not waste time—just tell me what you know. And please… stop calling me 'girl.' Use my name." "talk">>
<<addDialogue "Franklin" "Alright, alright… Casey. Got it." "talk">>
<<addDialogue "" "Finally… that’s better." "thoughts">>
<<addDialogue "Franklin" "But really… what good would talking about it do? It won’t change what’s already happened. You’re here now, so just do your job. I haven’t seen much anyway—just ruins, old junk… nothing that matters." "talk">>
<<addDialogue "Casey" "I’m not here to judge you, Franklin. But if you’re keeping something important from me and it gets someone hurt… I won’t forget that." "talk">>
<<addDialogue "Franklin" "Alright, alright… no need for threats, Detective. Just… be careful. There are still people in there. Some of them… they’ve lost their minds. Violent, dangerous. If you stay alert, you might be alright. You look like someone who can handle herself." "talk">>
<<addDialogue "Casey" "I can. But I appreciate the warning. I’ll keep my guard up." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Bye|Cabin]]">>
<<horizontalEnd>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">>
<<set $NoMoreGirl = true>><<dialogue "" "This man… Whatever." "thoughts">>
<<addDialogue "Casey" "Don’t make me repeat myself, Franklin. If you went inside, you saw something. Don’t play games with me." "talk">>
<<addDialogue "Franklin" "And what good would it do to talk about it, huh? It won’t change anything. You’re here now, so just do what you came to do. Besides, I didn’t see much… just the usual in a place like that: ruins, forgotten junk… garbage. Nothing worth mentioning." "talk">>
<<addDialogue "Casey" "I’m not stupid, Franklin. If you don’t want to say it, that’s fine. But let’s be clear—if you’re hiding something and I get into trouble because of it, I won’t forget it." "talk">>
<<addDialogue "Franklin" "Alright, alright… no need to get like that, Detective. Just… be careful. There are still people inside. Some of them… they’re completely gone. Violent. Dangerous. Trust me—you don’t want to cross paths with them. If you stay alert, you might be alright." "talk">>
<<addDialoguePos "" "[[Bye|Cabin]]" "center">>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">><<dialogue "Franklin" "What do you want? " "talk">>
<<spacing "100px">>
<<horizontalStart>>
<<addDialogue "" "[[Check the shop|Shop]]">>
<<addDialogue "" "[[Questions]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Bye|Cabin]]" "center">>
<<showNPC "frank" "img/characters/franklin/frank.png" "Franklin">>
<<script>>
openShop()
<</script>><<if $askdoc gte 1 && $safaplacetalk isnot true>>
<<if $NoMoreGirl is true>>
<<dialogue "Franklin" "Girl... I mean, Casey, I'd like to tell you something." "talk">>
<<else>>
<<dialogue "Franklin" "I'd like to tell you something, girl." "talk">>
<</if>>
<<else>>
<<addDialogue "Casey" "Maybe I have a few more questions." "talk">>
<<addDialogue "Franklin" "Alright, shoot." "talk">>
<</if>>
<<if $askdoc gte 1 && $safaplacetalk isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Hear him|safaplacetalk]]">>
<<horizontalEnd>>
<</if>>
<<if $askdoc isnot 1>>
<<horizontalStart>>
<<addDialogue "" "[[About the Doctor]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[No questions|Conserje]]" "center">>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">>
<<dialogue "Casey" "Okey I hear you." "talk">>
<<addDialogue "Franklin" "I was thinking about something I want to tell you." "talk">>
<<addDialogue "Casey" "Yeah? Spit it out." "talk">>
<<addDialogue "Franklin" "If you manage to get someone out of this hellhole alive, you can bring them to my cabin. It’s safe, nobody from the hospital comes around here… they’ll be fine." "talk">>
<<addDialogue "" "This old man is well aware that they only bring women here." "thoughts">>
<<addDialogue "Casey" "Someone, huh? …Of course, you mean one of those kidnapped girls, right?" "talk">>
<<addDialogue "Franklin" "I'm just saying, if you need a place, it's there. No strings attached." "talk">>
<<addDialogue "Casey" "Sure, sure… And I bet the "good Samaritan" isn’t expecting anything in return." "talk">>
<<addDialogue "" "Franklin can’t help but smirk slightly." "description">>
<<addDialogue "Franklin" "Hey, don’t get me wrong. I’m no hero, but I’m not a monster either. I’m just offering help… and if the company happens to be pleasant, what’s the harm?" "talk">>
<<addDialogue "Casey" "Whatever you say, Franklin. But if I do bring someone there, you better behave." "talk">>
<<addDialogue "Franklin" "Oh, come on! I’m not that bad." "talk">>
<<addDialogue "" "I’d never trust a guy like him, especially when he says, I’m not that bad. But maybe… I don’t have a choice." "thoughts">>
<<addDialogue "Casey" "We’ll see… First, I have to find them." "talk">>
<<addDialogue "Franklin" "Yeah… good luck with that. You’re gonna need it." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Bye|Cabin]]">>
<<horizontalEnd>>
<<set $safaplacetalk = true>>
<<set $SafePlace = true>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">> <<script>>
try {
var cheatcodeb = SugarCube.State.variables.cheatcodeb ?
SugarCube.State.variables.cheatcodeb.trim().toLowerCase() : "";
function addMultipleUpgrades(upgrades) {
upgrades.forEach(upgrade => window.addItemFromDatabase(upgrade, 1));
}
function addMultipleAmmo(ammoTypes) {
ammoTypes.forEach(ammo => window.addItemFromDatabase(ammo.type, ammo.amount));
}
// Helper function to navigate after delay
function navigateAfterDelay(passage, delay = 2000) {
setTimeout(() => {
SugarCube.Engine.play(passage);
}, delay);
}
if (cheatcodeb === "getmerich") {
window.phoneData.McMoney += 50000;
if (typeof window.showMoneyGain === 'function') {
window.showMoneyGain(50000, "Vending machine gave you money!");
}
navigateAfterDelay("Vendingmachine");
}
else if (cheatcodeb === "getmeduracell") {
window.rechargeLantern(100, 'premium');
navigateAfterDelay("Vendingmachine");
}
else if (cheatcodeb === "getmepills") {
window.addItemFromDatabase('antidep', 20);
window.addItemFromDatabase('medkit', 10);
window.addItemFromDatabase('antibio', 20);
navigateAfterDelay("Vendingmachine");
}
else if (cheatcodeb === "getmeshotgun") {
window.addItemFromDatabase('sawedoff', 1);
navigateAfterDelay("Vendingmachine");
}
else if (cheatcodeb === "getmerifle") {
window.addItemFromDatabase('rifle', 1);
navigateAfterDelay("Vendingmachine");
}
else if (cheatcodeb === "getmeammopistol") {
addMultipleAmmo([
{type: 'pistol_ammo', amount: 50},
{type: 'pistol_ammo_expansive', amount: 50},
{type: 'pistol_ammo_incendiary', amount: 30}
]);
navigateAfterDelay("Vendingmachine");
}
else if (cheatcodeb === "getmeammoshotgun") {
addMultipleAmmo([
{type: 'shotgun_shells', amount: 50},
{type: 'shotgun_slug', amount: 30},
{type: 'shotgun_dragon', amount: 30}
]);
navigateAfterDelay("Vendingmachine");
}
else if (cheatcodeb === "getmeammorifle") {
addMultipleAmmo([
{type: 'rifle_ammo', amount: 50},
{type: 'rifle_ammo_piercing', amount: 25},
{type: 'rifle_ammo_tracer', amount: 20}
]);
navigateAfterDelay("Vendingmachine");
}
else if (cheatcodeb === "getmepistolupgrades") {
addMultipleUpgrades([
'pistol_laser_sight',
'pistol_recoil_compensator',
'pistol_extended_magazine'
]);
navigateAfterDelay("Vendingmachine");
}
else if (cheatcodeb === "getmeshotgunupgrades") {
addMultipleUpgrades([
'shotgun_adjustable_choke',
'shotgun_extended_tube',
'shotgun_speed_pump',
'shotgun_extended_barrel'
]);
navigateAfterDelay("Vendingmachine");
}
else if (cheatcodeb === "getmerifleupgrades") {
addMultipleUpgrades([
'rifle_bipod',
'rifle_scope',
'rifle_extended_magazine',
'rifle_heavy_barrel'
]);
navigateAfterDelay("Vendingmachine");
}
else if (cheatcodeb === "iamsamurai") {
window.addItemFromDatabase('katana', 1);
navigateAfterDelay("Vendingmachine");
}
else if (cheatcodeb === "getmeeasymode") {
// Unlock Easy Mode
window.AudioSettingsSystem.settings.easyModeUnlocked = true;
window.AudioSettingsSystem.saveSettings();
if (window.gameState) {
window.gameState.easyModeUnlocked = true;
}
// Show success message using the money gain system for visual feedback
if (typeof window.showMoneyGain === 'function') {
window.showMoneyGain(0, "Easy Mode unlocked! Check Audio Settings.");
}
console.log('🔓 CHEAT: Easy Mode unlocked via vending machine!');
navigateAfterDelay("Vendingmachine");
}
else {
// Show wrong code popup instead of going to Error passage
window.DialogueSystem.showWrongCodePopup("Vendingmachine");
}
} catch (error) {
console.error("Error en el código de trampa: ", error);
window.DialogueSystem.showWrongCodePopup("Vendingmachine");
}
<</script>><<startLockpicking "average" "LockPickUsual" "FailedToOpenChestPassage">>
easy, average,hard, veryhard
<<script>>
window.giveLockpicks(5)
<</script>>
<<startLockpicking "average" "LockPickUsual" "Failure" true>>
<<discardItem "mission_lockpick">>
Aumentar maximo de vida y cordura
<<script>>
window.increaseMaxSanity(100)
<</script>>
<<script>>
window.increaseMaxHealth(100)
<</script>>
recover
<<script>>
window.HealthSanitySystem.addSanity(10)
<</script>>
<<script>>
window.HealthSanitySystem.addHealth(10)
<</script>>
decrease
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<<script>>
window.HealthSanitySystem.removeHealth(10)
<</script>>
<<if window.gameState.lanternOn>> <<dialogue "" "You look around the office." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Wall|wi]]">>
<<addDialogue "" "[[Desk|di]]">>
<<addDialogue "" "[[Computer|introsave]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|ci2]]" "center">><<if window.gameState.lanternOn>>
<<goto "Cavelight">>
<<else>>
<<dialogue "" "The darkness inside the cave is suffocating, but in the distance, a faint glow marks the exit. Without your flashlight, you have no choice but to move blindly, guided only by the dim light. Each step echoes in the silence until you finally cross the threshold, leaving the cavern behind and stepping back into the open air." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit cave|Caveoutside]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<</if>>
<<script>>
window.setLighting(40);
<</script>>
<<include "SanityEvents">>
<<include "HealthEvents">>
<<dialogue "" "With precise movements, you manipulate the internal pins until you feel a subtle click. The door unlocks with a faint snap, and the alarm remains silent." "description">>
<<addDialogue "Casey" "Alright... Let's see what's inside." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Inspect the car|FBIcar]]">>
<<horizontalEnd>>
<<script>>
completeQuestStage("fbi_vehicle_quest");
<</script>><<if window.gameState.lanternOn>>
<<goto "Cave2light">>
<<else>>
<<dialogue "" "The darkness inside the cave is suffocating, but in the distance, a faint glow marks the exit. Without your flashlight, you have no choice but to move blindly, guided only by the dim light. Each step echoes in the silence until you finally cross the threshold, leaving the cavern behind and stepping back into the open air." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go to exit|Caveoutside]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<</if>><<if window.gameState.lanternOn>>
<<goto "Cave3light">>
<<else>>
<<dialogue "" "The darkness inside the cave is suffocating, but in the distance, a faint glow marks the exit. Without your flashlight, you have no choice but to move blindly, guided only by the dim light. Each step echoes in the silence until you finally cross the threshold, leaving the cavern behind and stepping back into the open air." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go to exit|Caveoutside]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>><<dialogue "" "The cave opens into a wider space, where the air feels cooler and the atmosphere calmer. A small pool of crystal-clear water reflects the shadows dancing on the rocky walls. The sound of your footsteps fades into the silence, while the water barely stirs, adding an unexpected sense of calm to the place." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go to exit|Caveoutside]]">>
<<horizontalEnd>>
<<if $safecave isnot true>>
<<goto "diabolicwolfcave">>
<</if>>
<<if $safecave isnot true>>
<<dialogue "" "The passage narrows, and moisture clings to every surface. The beam of your flashlight barely reveals blurred outlines in the dim light. You move forward silently, the distant howls of wolves echoing through the cave." "description">>
<<else>>
<<dialogue "" "The passage narrows as you move forward. The weight of silence lingers, but there’s an odd stillness, as if the cave itself has settled into a quiet that wasn’t there before." "description">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Go through the cave|Cave3]]">>
<<addDialogue "" "[[Go to the exit|Cave]]">>
<<horizontalEnd>>
<<if $wolfcave isnot 2>>
<<goto "wolfcave">>
<</if>>
<<dialogue "" "You push forward through the final stretch of the tunnel, feeling the humidity in the air grow heavier. The sound of dripping water blends with the echo of your footsteps until you finally emerge into a vast underground chamber." "description">>
<<addDialogue "" "In front of you, a small lake of dark waters stretches across the heart of the cave. From a crack high above, faint rays of moonlight pierce through the darkness, casting a shimmering glow on the rippling surface. For a moment, the scene feels calm, almost unreal." "description">>
<<addDialogue "" "With cautious steps, you move toward the edge of the small lake. The water is dark and impenetrable, reflecting distorted fragments of the moonlight filtering through the crack above. A deathly silence takes hold of the place, broken only by the steady dripping of water and the distant sound of your own breathing. Then, you hear a noise. Your body tenses." "description">>
<<addDialogue "" "Something moves in the shadows." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Await|diabolicwolfcave2]]">>
<<addDialogue "" "[[Go to exit|Caveoutside]]">>
<<horizontalEnd>>
<<if $safecave isnot true>>
<<dialogue "" "The path grows darker, the air thick with the smell of damp earth. In the distance, you hear the rustling of something large moving, but nothing comes into view." "description">>
<<else>>
<<dialogue "" "The cave feels different now. The path ahead is clear, the ominous sounds have faded." "description">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Go through the cave|Cave4]]">>
<<addDialogue "" "[[Go to the exit|Cave2]]">>
<<horizontalEnd>>
<<dialogue "" "The silence of the cave is shattered by a guttural sound, a low, deep growl that echoes off the rocky walls. From the darkest shadow, a silhouette begins to emerge. First, two glowing red eyes pierce the gloom, locked onto you with an inhuman intensity. Then, the massive body advances, its blackened fur seeming to writhe with the very darkness that clings to it." "description">>
<<addDialogue "" "Its breath is heavy, each exhalation leaving a trail of mist in the cave’s freezing air. Its claws dig into the damp rock with every step, and an unnatural aura surrounds it, distorting the moonlight filtering through the crack above." "description">>
<<addDialogue "Casey" "What… the hell is that? Oh my god! A... werewolf?" "talk">>
<<addDialogue "" "What the... is that real? Your hand instinctively grips your weapon, all your senses tell you that the beast is real." "thoughts">>
<<addDialogue "Casey" "This isn’t a normal beast… How can this thing even exist?" "talk">>
<<addDialogue "" "Your breathing quickens. Your muscles tense. And the werewolf advances." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|cavebattle2]]">>
<<horizontalEnd>>
<<timed 12s>>
<<showNPC "werewolf" "img/monsters/patients/werewolf.png" "Werewolf">>
<</timed>>
<<set $diabolicwolfcave = 1>>
<<timed 12s>>
<<script>>
playSoundDirect('monsterwolf-howl.mp3');
<</script>>
<</timed>>
<<timed 2s>>
<<script>>
playSoundDirect('monsterwolf-howl.mp3');
<</script>>
<</timed>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<<run startAdvancedBattle([
{
type: 'werewolf',
hp: 150,
distance: 40,
randomDistance: true,
speed: "4-7",
minMovement: 4,
maxMovement: 7,
damage: 23,
DamageIgnore: {
'pistol': 0.7,
'rifle': 0.6,
'shotgun': 0.8,
'melee': 0.5,
'incendiary': 0.1,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.8,
'.45': 0.7,
'slugs': 0.9
}
},
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<dialogue "" "The air inside the cave is dense and humid. The dim light of your flashlight barely cuts through the darkness, casting irregular shadows on the rocky walls. You take a step forward, then a low, menacing growl shatters the silence." "description">>
<<addDialogue "" "Why the hell did I come here?" "thoughts">>
<<addDialogue "" "Your muscles tense. You turn the flashlight, and the beam reveals two silhouettes in the darkness—wolves. Their eyes gleam with a hungry glint, their slightly open jaws exposing sharp, yellowed fangs. One of them moves forward slowly, its body tense, ready to strike. The other circles around, trying to flank you." "description">>
<<addDialogue "·Mc" "Damn it!" "talk">>
<<addDialogue "" "You don’t have time to think. The first one leaps with a fierce snarl." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|cavebattle]]">>
<<horizontalEnd>>
<<timed 7s>>
<<showNPC "wolves" "img/monsters/patients/twowolves.png" "Wolves">>
<</timed>>
<<timed 2s>>
<<script>>
playSoundDirect('wolf-howl.mp3');
<</script>>
<</timed>>
<<set $wolfcave = 1>><<run startAdvancedBattle([
{
type: 'normalWolf',
hp: 80,
distance: 40,
randomDistance: true,
speed: "6-8",
minMovement: 6,
maxMovement: 8,
damage: 8,
DamageIgnore: {
'pistol': 0.7,
'rifle': 0.6,
'shotgun': 0.8,
'melee': 0.5,
'incendiary': 0.1,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.8,
'.45': 0.7,
'slugs': 0.9
}
},
{
type: 'strongWolf',
hp: 80,
distance: 50,
randomDistance: true,
speed: "4-6",
minMovement: 4,
maxMovement: 6,
damage: 14,
DamageIgnore: {
'pistol': 0.7,
'rifle': 0.6,
'shotgun': 0.8,
'melee': 0.5,
'incendiary': 0.1,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.8,
'.45': 0.7,
'slugs': 0.9
}
}
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<dialogue "" "You reach into the wolf's throat, your fingers brushing against something hard and foreign. After a brief struggle to free it, you pull out a worn, grimy object. It's a card, caked in mud and streaked with blood. You hold it in your hands, wiping it clean with the edge of your jacket.
It's an access card. The magnetic strip is scratched and worn from use, but the printed text is still visible, albeit slightly faded: Access Level B." "description">>
<<addDialogue "Casey" "Level B." "talk">>
<<addDialogue "" "With a soft exhale, you tuck the card into your jacket pocket. You don't know what door it opens, but something tells you this is no ordinary find." "description">>
<<addDialogue "" "It might be useful later." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Cave4]]">>
<<horizontalEnd>>
<<set $bcard = true>>
<<script>>
// Special item example
const itemKey = 'bcard';
const itemName = 'Magnetic Card (B)';
const itemDescription = 'A small magnetic keycard labeled Access B for Charles Francis Hospital security doors';
const itemValue = 100;
const imagePath = `img/items/keys/bcard.png`;
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "special",
image: imagePath,
stackable: false,
maxStack: 1,
value: itemValue,
weight: 0.1,
isSellable: false,
};
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 1,
img: imagePath
};
//Adding item ro inventory
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
window.ShopSystem.populateSellItems();
<</script>><<dialogue "" "You put away the gun and the bullets. As you continue searching through the drawer, your fingers brush against your flashlight." "description">>
<<addDialogue "Casey" "The flashlight will surely come in handy." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Take the flashlight|introlinterna]]">>
<<horizontalEnd>>
<<script>>
window.addItemFromDatabase('pistol', 1);
window.addItemFromDatabase('pistol_ammo', 50);
<</script>>
<<dialogue "" "The room is small and dark, though you can still see. The air is thick and dusty. In one corner, an old desk holds an ancient computer, its screen covered in dust. Against the wall, a metal locker stands tall." "description">>
<<if $SRdoor isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check door|saveroomdoor]]">>
<<addDialogue "" "[[Check the computer|saveroom]]">>
<<addDialogue "" "[[Check the locker|SRlocker]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Check the computer|saveroom]]">>
<<addDialogue "" "[[Check the locker|SRlocker]]">>
<<horizontalEnd>>
<</if>>
<<if $SRdoor is true>>
<<horizontalStart>>
<<addDialogue "" "[[Exit through the window|Camino-izquierda]]">>
<<addDialogue "" "[[Exit to hallway|SRcorridor]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Exit through the window|Camino-izquierda]]">>
<<horizontalEnd>>
<</if>>
<<if $Windowcrash is true && $bwinfight2 isnot true && $patientcome isnot 1>>
<<goto "nosaveroom">>
<</if>>
<<if $bwinfight2 is true && $reflexionSR isnot true>>
<<goto "reflexionSR">>
<</if>>
<<if $inside isnot true && $bwinfight2 is true>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('lobbytheme.mp3', 4000);
}, 1000);
<</script>>
<<set $inside = true>>
<</if>>
<<script>>
window.setLighting(70);
<</script>>
<<if $patientcome is 1>>
<<dialogue "" "Someone is about to enter through this door." "description">>
<<addDialogue "" "I'll wait here, or I'll leave through the window." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Saveroom]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "As you open the door, a dark and silent hallway greets you. The faint light filtering in from the room barely illuminates the first few meters before being swallowed by the shadows. The air is thick, carrying a slight scent of dampness and rust. In the distance, a mournful howl shatters the silence, echoing through the corridors like an omen of something lurking in the darkness, sending a chill through you." "description">>
<<addDialogue "Casey" "Damn it, I can't see a thing..." "talk">>
<<addDialogue "" "Luckily, I brought my flashlight." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Exit to corridor|SRcorridor]]">>
<<addDialogue "" "[[Back|Saveroom]]">>
<<horizontalEnd>>
<<set $SRdoor = true>>
<</if>>
<<countdown 20 "brokewindowtalk2">>
<<script>>
setTimeout(() => {
audioSystemCrossfade('alert.mp3', 4000);
}, 1000);
<</script>>
<<goto "Saveroom">>
<<switch visited()>>
<<case 1>>
<<dialogue "" "You find a computer covered in dust in a corner of the room. Against all odds, it appears to be working. The screen flickers faintly, indicating that it’s still receiving power." "description">>
<<default>>
<<dialogue "" "The screen of the old computer flickers faintly, indicating that it’s still receiving power." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "<div class='main-menu-btn' id='save-button'>Save/Load</div>">>
<<horizontalEnd>>
<<addDialoguePos "" "[[Go back|Saveroom]]" "center">>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<set $inside = false>>
<<dialogue "" "You open the locker, it's empty." "description">>
<<switch visited>>
<<case 1>>
<<addDialogue "" "Then, you think for a few seconds." "description">>
<<addDialogue "" "It's big enough for me." "thoughts">>
<<addDialogue "Casey" "I can get in here and hide." "talk">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Get inside|SRlockerinside]]">>
<<addDialogue "" "[[Back|Saveroom]]">>
<<horizontalEnd>>
<<if window.gameState.lanternOn>>
<<goto "SRcorridorLight">>
<<else>>
<<dialogue "" "The passage is completely dark. Although you can see the path ahead, everything else remains submerged in darkness. You can't distinguish anything else." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Small office|Saveroom]]">>
<<addDialogue "" "[[Move through hallway|SRcorridor1]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<script>>
window.setLighting(50);
<</script>><<switch visited()>>
<<case 1>>
<<dialogue "" "The sound of the last gunshot echoes through the hallways like thunder, its deafening roar fading into the vast emptiness of the asylum. The patient’s body collapses heavily to the floor, but there’s no time to react. A sound shatters the silence. Rushed footsteps pound in the distance, accompanied by a low growl. The screech of a rusted door swinging open..." "description">>
<<default>>
<<dialogue "" "A sound shatters the silence. Rushed footsteps pound in the distance, accompanied by a low growl. The screech of a rusted door swinging open..." "description">>
<</switch>>
<<addDialogue "Casey" "Shit, someone’s coming..." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|patientcome]]">>
<<horizontalEnd>>
<<set $patientcome = 1>>
<<dialogue "" "Shit, this isn’t starting well." "talk">>
<<addDialogue "" "Doesn’t matter, what's done is done. But something’s becoming clear: this place isn’t abandoned." "thoughts">>
<<addDialogue "Casey" "Even though it looks like it." "talk">>
<<addDialogue "" "There are still people here, even if they’re barely human anymore. They don’t seem capable of thinking beyond their instincts, but they’re still victims of something, or someone. Probably Doctor White is involved. This place is still alive, in some twisted way." "thoughts">>
<<addDialogue "Casey" "And I... I’m stuck in its mess!" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Saveroom]]">>
<<horizontalEnd>>
<<set $reflexionSR = true>>
<<script>>
completeQuestStage("enter_quest");
<</script>>
<<script>>
addQuestWithStages(
"Return to the Main Hall",
"Dr. White locked the main door from the inside after you stepped outside. Now that you've managed to get back inside, head to the main hall and look for the doctor.",
[
"Go back to the main hall.",
"Open the main entrance from the inside."
],
"📋",
"main",
"main_hall_quest", // Custom ID
"img/quest.png" // Custom quest image
);
// Add stage images (optional, you can repeat the same if there are no different ones)
if (window.questSystem && window.questSystem.quests["main_hall_quest"]) {
window.questSystem.quests["main_hall_quest"].stageImages = [
"img/quest.png", // Stage 1
"img/quest.png" // Stage 2
];
}
State.variables.WhiteQuestId = "main_hall_quest";
<</script>><<dialogue "" "You slip into the locker and carefully close the door. Inside, the space is tight but enough to hide. Darkness surrounds you, and the only sound is your own breathing. You stay still for a few seconds, but nothing happens. Everything is quiet." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "" "If danger is near, this could be a good hiding spot. But I can't stay here forever." "thoughts">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Leave|Saveroom]]">>
<<horizontalEnd>>
<<if $Windowcrash is true && $bwinfight2 isnot true && $patientcome is 1>>
<<goto "patientcome2">>
<</if>>
<<dialogue "" "You slip into the locker just in time, carefully closing the door. You hold your breath. The room's door creaks open. A patient enters, muttering incoherently, his bare feet slapping against the floor unevenly. He suddenly stops, sniffing the air as if he can sense your presence. The sound of shuffling footsteps grows closer, his breathing heavy and ragged, like a wounded animal." "description">>
<<addDialogue "" "Come on… just keep moving." "thoughts">>
<<addDialogue "" "For a few seconds, the patient lingers, glancing around, his head tilting unnaturally. Then, as if losing interest, he grunts and leaves, shutting the door behind him. You wait a few moments before finally exhaling." "description">>
<<addDialogue "Casey" "God… that was close." "talk">>
<<addDialogue "" "I can't stay here forever. I need to keep moving." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|Saveroom]]">>
<<horizontalEnd>>
<<removecountdown>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('lobbytheme.mp3', 4000);
}, 1000);
<</script>>
<<set $bwfight2 = 2>>
<<set $bwinfight2 = true>>
<<set $patientcome = 0>>
<<dialogue "" "The footsteps grow closer, heavy and clumsy, until they stop at the doorway. In the dim light, you see his silhouette—a tall, filthy man with tattered clothing and a vacant expression, as if his mind is trapped in some dark corner of his own madness. In his hand, he grips a crude butcher’s knife, the metal dulled and stained. He stands there, motionless, breathing erratically as his eyes scan the scene. He doesn’t step inside. He just watches. As if his mind is struggling to process what’s in front of him." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Fight him|brokewindowfight2]]">>
<<addDialogue "" "[[Try to talk|brokewindowtalk2-2]]">>
<<horizontalEnd>>
<<showNPC "patient" "img/monsters/patients/madpatient.png" "Patient">>
<<script>>
setTimeout(() => {
audioSystemCrossfade('lobbytheme.mp3', 4000);
}, 1000);
<</script>>
<<set $bwfight2 = 1>>
<<set $EventE2 = 1>><<run startAdvancedBattle([
{
type: 'madPatient',
hp: 70,
distance: 20,
randomDistance: true,
speed: "3-6",
minMovement: 3,
maxMovement: 6,
damage: 10,
DamageIgnore: {
'pistol': 0.5,
'rifle': 0.2,
'shotgun': 0.1,
'melee': 0.4,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.4,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', true)>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<dialogue "" "You take a deep breath, adrenaline still coursing through your body from the previous shot. You know that any wrong move could trigger another fight, and you've already drawn enough attention." "description">>
<<addDialogue "Casey" "Listen... I don’t want to kill you. You don’t have to do this." "talk">>
<<addDialogue "" "The man, motionless in the doorway, tilts his head with a spasmodic jerk. His eyes scan the room, lingering on the corpse at your feet. His breathing is uneven, ragged, and the chipped blade of his butcher knife catches the dim light of the room." "description">>
<<addDialogue "" "A guttural click escapes his throat, followed by a low, sickly chuckle. His fingers, clenched around the weapon’s handle, tremble with a mix of anxiety and perverse excitement." "description">>
<<addDialogue "Patient" "You’re... pretty..." "talk">>
<<addDialogue "" "You take a step back as a gag rises in your throat and your stomach churns, triggered by a visceral revulsion." "description">>
<<addDialogue "" "Oh... fuck is another lobotomized rapist..." "thoughts">>
<<addDialogue "Casey" "Stay back!" "talk">>
<<addDialogue "" "But the plea only excites him further. His grin stretches into something grotesque, yellowed teeth peeking through cracked lips. Suddenly, his body convulses, and with a guttural roar, he lunges forward, raising the knife." "description">>
<<addDialogue "Patient" "Mmm... This smell... Give me!" "talk">>
<<addDialogue "Casey" "No time for talking now!" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Fight him|brokewindowfight2-2]]">>
<<horizontalEnd>>
<<set $bwfight2 = 1>>
<<showNPC "patient" "img/monsters/patients/madpatient.png" "Patient">><<run startAdvancedBattle([
{
type: 'madPatient',
hp: 70,
distance: 10,
randomDistance: true,
speed: "3-6",
minMovement: 3,
maxMovement: 6,
damage: 10,
DamageIgnore: {
'pistol': 0.5,
'rifle': 0.2,
'shotgun': 0.1,
'melee': 0.4,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.4,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', true)>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>>
<<setAvatarDirect "casey.png">>
<<if $Ic isnot true>>
<<goto "ci">>
<<else>>
<<goto "ci2">>
<</if>>
<<dialogue "" "The light from your flashlight illuminates the area, revealing the deteriorated walls and some abandoned furniture. The atmosphere feels slightly less threatening." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Small office|Saveroom]]">>
<<addDialogue "" "[[Go to next hallway|SRcorridor1]]">>
<<horizontalEnd>>
<<set $enemyChance = random(5)>>
<<if $enemyChance is 5>>
<<goto "SRcorridorenemy">>
<</if>>
<<dialogue "" "The passage is completely dark. The light from your flashlight illuminates the path ahead, but everything else remains swallowed by shadows. You can't make out anything beyond it." "description">>
<<addDialogue "" "Suddenly, something moves in the darkness. Drawn to the glow of your flashlight, a man in a patient’s gown emerges from the shadows and lunges at you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|SRCfight]]">>
<<horizontalEnd>>
<<set $srcff =1>>
<<set $EventE3 = 1>><<set $randomEnemy =random(2)>>
<<if $randomEnemy is 0>>
<<run startAdvancedBattle([
{
type: 'lobotomizedPatient',
hp: 80,
distance: 10,
randomDistance: true,
speed: "2-5",
minMovement: 2,
maxMovement: 5,
damage: 8,
DamageIgnore: {
'pistol': 0.2,
'rifle': 0.0,
'shotgun': 0.0,
'melee': 0.6,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.4,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', true)>>
<<elseif $randomEnemy is 1>>
<<run startAdvancedBattle([
{
type: 'madPatient',
hp: 70,
distance: 20,
randomDistance: true,
speed: "3-6",
minMovement: 3,
maxMovement: 6,
damage: 10,
DamageIgnore: {
'pistol': 0.5,
'rifle': 0.2,
'shotgun': 0.1,
'melee': 0.4,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.4,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', true)>>
<<elseif $randomEnemy is 2>>
<<run startAdvancedBattle([
{
type: 'locoPatient',
hp: 90,
distance: 20,
randomDistance: true,
speed: "3-6",
minMovement: 3,
maxMovement: 6,
damage: 8,
DamageIgnore: {
'pistol': 0.5,
'rifle': 0.2,
'shotgun': 0.1,
'melee': 0.4,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.4,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', true)>>
<</if>>
<<set $enemyPresent = false>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<dialogue "" "You stop in the middle of the hallway. Ahead of you, two open doors lead into dark rooms on either side. One to the left, the other to the right, both shrouded in an unsettling darkness." "description">>
<<if $leftroom1 isnot true && $leftroom2 isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Left Door|SDoor1]]">>
<<addDialogue "" "[[Right Door|SDoor2]]">>
<<horizontalEnd>>
<<elseif $leftroom1 isnot true && $leftroom2 is true>>
<<horizontalStart>>
<<addDialogue "" "[[Left Door|SDoor1]]">>
<<addDialogue "" "[[Right Room|SRoom2]]">>
<<horizontalEnd>>
<<elseif $leftroom1 is true && $leftroom2 isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Left Room|SRoom1]]">>
<<addDialogue "" "[[Right Door|SDoor2]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Left Room|SRoom1]]">>
<<addDialogue "" "[[Right Room|SRoom2]]">>
<<horizontalEnd>>
<</if>>\
<<horizontalStart>>
<<addDialogue "" "[[Go to small office|SRcorridor]]">>
<<addDialogue "" "[[Go to next hallway|SRcorridor2]]">>
<<horizontalEnd>>
<<set $enemyPresent = false>><<dialogue "" "You stop at the end of the hallway. You see a door at the far end." "description">>
<<if $srdoorcheck isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check door|SRCdoor]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<if $srdoorcheck is true>>
<<addDialogue "" "[[Go to entrance|Left Corridor]]">>
<</if>>
<<addDialogue "" "[[Go to small office|SRcorridor1]]">>
<<horizontalEnd>>
<<set $srhallway2 = true>>
<<set $enemyPresent = false>>
<<set $enemyChance = random(5)>>
<<if $enemyChance is 5>>
<<goto "SRcorridor2enemy">>
<</if>>
<<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|SRoom1]]">>
<<addDialogue "" "[[Back|SRcorridor1]]">>
<<horizontalEnd>>
<<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|SRoom2]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|SRcorridor1]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "SRoom2Light">>
<<else>>
<<if $fapperisgone is true>>
<<dialogue "" "The darkness inside the room is absolute. You can't see." "description">>
<<else>>
<<if $fapenemy is true>>
<<dialogue "" "The darkness is complete, and you continue hearing the gasps; the man keeps going." "description">>
<<addDialogue "Casey" "Better get out of here." "talk">>
<<else>>
<<dialogue "" "As you take the first step into the room, a dense darkness engulfs you completely. There’s no trace of light—just an oppressive void that seems to swallow every last flicker of hope. Your eyes don’t adjust. There’s nothing to see." "description">>
<<addDialogue "" "Then, a sound breaks the silence: low, ragged breathing, irregular and skin-crawling. It comes from somewhere in the darkness, far too close for comfort. The breathing doesn’t sound normal. It’s coarse, laced with an unsettling tension you can’t quite identify." "description">>
<<addDialogue "" "I can’t move forward blindly." "thoughts">>
<<addDialogue "Casey" "I’m not taking another step without turning on the flashlight. Whatever that is… I don’t want to trip over it." "talk">>
<</if>>
<</if>>
<<addDialoguePos "" "[[Back|SRcorridor1]]" "center">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<set $leftroom2 = true>>
<<if window.gameState.lanternOn>>
<<goto "SRcorridor2Light">>
<<else>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "You move forward through the pitch-black hallway, each step cautious on the unseen floor. The darkness is absolute, swallowing everything—except for a faint outline ahead. A door stands at the end of the corridor, close enough to reach." "description">>
<<addDialogue "" "At least there's a way forward…" "thoughts">>
<<default>>
<<dialogue "" "You move forward through the pitch-black hallway, each step cautious on the unseen floor. The darkness is absolute, swallowing everything—except for a faint outline ahead." "description">>
<</switch>>
<<if $srdoorcheck isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check door|SRCdoor]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<if $srdoorcheck is true>>
<<addDialogue "" "[[Go to entrance|Left Corridor]]">>
<</if>>
<<addDialogue "" "[[Go to small office|SRcorridor1]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<set $srhallway2 = true>><<if window.gameState.lanternOn>>
<<goto "SRoom1Light">>
<<else>>
<<dialogue "" "The darkness inside the room is absolute. You reach out your hand in front of your face, hoping to see at least an outline, but there’s nothing. The blackness is so deep it feels heavy, as if the void itself surrounds you—oppressive, suffocating." "description">>
<<addDialoguePos "" "[[Exit|SRcorridor1]]">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<set $leftroom1 = true>>
<<dialogue "" "At the end of the hallway, a door stands before you. The handle turns slightly... it seems unlocked." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Open door|Left Corridor]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|SRcorridor2]]" "center">>
<<set $srdoorcheck = true>>
<<if window.gameState.lanternOn>>
<<goto "Left Corridorlight">>
<<else>>
<<dialogue "" "A long, dark hallway stretches ahead of you, the shadows dancing along the walls as if something is watching. At the end of the hallway, you can make out a door." "description">>
<<if $openleftdoor isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check door|leftdoor]]">>
<<horizontalEnd>>
<</if>>
<<if $openleftdoor is true>>
<<horizontalStart>>
<<addDialogue "" "[[Go to small office|SRcorridor2]]">>
<<addDialogue "" "[[Move through hallway|Left Corridor1]]">>
<<addDialogue "" "[[Entrance|MainLobby]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Go to small office|SRcorridor2]]">>
<<addDialogue "" "[[Move through hallway|Left Corridor1]]">>
<<horizontalEnd>>
<</if>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>><<dialogue "" "As you step into the room, the beam of your flashlight cuts through the darkness, revealing worn walls and a floor coated in dust. In one corner, an old, half-open cabinet stands out, its wood splintered and covered in strange marks." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check cabinet|Srcabinet]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|SRcorridor1]]" "center">>
<<if $cabinet isnot true>>
<<dialogue "" "As you rummage through the cabinet, your fingers stop at the touch of a small bottle. You find antidepressant pills. They’re small, white, and seem to have been there for a long time." "description">>
<<addDialogue "Casey" " It’s not much, but it could help." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Take antidepressants|cabinetpill|?!canPickupAntidep]]">>
<<addDialogue "" "[[Get inside|SRLocker]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|SRoom1]]" "center">>
<<else>>
<<dialogue "" "The shelves are empty, only a few crumpled papers and accumulated dust remain. Everything has been looted." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Get inside|SRLocker]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|SRoom1]]" "center">>
<</if>>
<<dialogue "" "You pick up the antidepressants and tuck them into your backpack." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Get inside the locker|SRLocker]]">>
<<addDialogue "" "[[Back|SRoom1]]">>
<<horizontalEnd>>
<<set $cabinet = true>>
<<script>>window.addItemFromDatabase('antidep', 3);<</script>><<dialogue "" "You slip into the locker and gently shut the door. The space is cramped, but enough to conceal yourself. Darkness wraps around you, and the only sound is your own breathing. You remain still for a few moments, but nothing happens." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Leave|SRoom1]]">>
<<horizontalEnd>>
<<if $fapperisgone isnot true>>
<<goto "SRfapenemy">>
<<else>>
<<dialogue "" "The floor is covered in dark stains, the result of the struggle. The room, once oppressive, is now wrapped in an unsettling silence, broken only by your breathing." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "" "I don't know if this is a relief or a nightmare that keeps chasing me." "thoughts">>
<</switch>>
<<if $srcrates isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Search in the crates|cratesearch]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|SRcorridor1]]" "center">>
<</if>><<dialogue "" "You rummage through the box and find a plastic bottle, opaque and unlabeled. The cloudy liquid inside looks dangerous. The strong chemical smell makes you step back for a moment. In the box, there are more similar jars, all with broken or crushed caps, as if hastily abandoned. You found a bottle of chemicals." "description">>
<<addImage "img/events/hospitalcrates.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take it|crateschem|?inventoryFull]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|SRoom2]]" "center">>
<<switch visited()>>
<<case 1>>
<<dialogue "" "As you enter the room, the beam of the flashlight reveals a disturbing scene. The man is there, in a corner on the other side of the room, masturbating without the slightest reaction to your presence. The flashlight's light seems to have no effect on him; he continues as if you weren’t there." "description">>
<<addDialogue "Casey" " I can’t believe what I’m seeing… What’s wrong with these people?" "talk">>
<<addDialogue "" "They seem lobotomized, but for what purpose? Uncontrolled reproduction?" "description">>
<<addDialogue "Casey" "This is just absurd..." "talk">>
<<default>>
<<dialogue "" "The man is there, masturbating without the slightest reaction to your presence. The flashlight's light seems to have no effect on him; he continues as if you weren’t there." "description">>
<<addDialogue "Casey" " Why the hell did I come back here?" "talk">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Interrupt him|SRfapenemy2]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|SRcorridor1]]" "center">>
<<set $fapenemy = true>>
<<showNPC "patient" "img/monsters/patients/patient1.png" "Patient">> <<set $srcrates = true>>
<<goto "SRoom2">>
<<script>>
const itemKey = 'whiteliquid';
const itemName = 'Cloudy liquid';
const itemDescription = 'A bottle containing an unknown white liquid. It swirls slowly when tilted, with an oddly thick consistency. The glass feels strangely warm to the touch, and there\'s no label to hint at its origins or purpose.';
const itemValue = 100;
const imagePath = `img/items/special/whiteliquid.png`;
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "special",
image: imagePath,
stackable: true,
maxStack: 1,
value: itemValue,
weight: 0.5,
isSellable: true,
};
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 1,
img: imagePath
};
//Adding item ro inventory
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
window.ShopSystem.populateSellItems();
<</script>><<dialogue "" "You approach the man cautiously, knowing it's unlikely he'll give you a coherent response. The light from the lantern illuminates his empty face, and his eyes barely seem to register your presence. The sound of his breathing and the patter of your steps are the only things you can hear in the room." "description">>
<<addDialogue "Casey" " Who did this to you? Do you remember anything? Was it Doctor White?" "talk">>
<<addDialogue "" "The man flinches at being interrupted, letting out a disoriented scream." "description">>
<<addDialogue "Patient" "No! No... no! Aah!" "talk">>
<<addDialogue "" "Then, his eyes fixate on you. He watches you, as if finally noticing your presence. A strange gleam appears in his gaze." "description">>
<<addDialogue "Patient" "You... real?" "talk">>
<<addDialogue "" "This guy can't think straight... He's completely lost. He's not going to know anything useful. But... what have they done to him? And why?" "thoughts">>
<<addDialogue "Casey" " Yes, I'm real..." "talk">>
<<addDialogue "" "Before you can react, the man attacks, his movements erratic but filled with a sudden and violent energy." "description">>
<<addDialogue "Patient" "Give me! Be mine!" "talk">>
<<addDialogue "Casey" " Fuck!" "talk">>
<<addDialoguePos "" "[[Fight|SRFenemy]]" "center">>
<<showNPC "patient" "img/monsters/patients/patient1.png" "Patient">>
<<set $EventE5 = 1>>
<<set $Sroom2 = 1>><<run startAdvancedBattle([
{
type: 'fappingPatient',
hp: 90,
distance: 20,
randomDistance: true,
speed: "2-5",
minMovement: 2,
maxMovement: 5,
damage: 8,
DamageIgnore: {
'pistol': 0.2,
'rifle': 0.0,
'shotgun': 0.0,
'melee': 0.6,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.4,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', true)>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<dialogue "" "The door doesn't budge. You try pushing it again, but it remains firmly in place." "description">>
<<addDialogue "" "The latch is set from this side, I can open." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Open door|leftdooropen]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Left Corridor]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "Left Corridor1light">>
<<else>>
<<dialogue "" "The hallway is enveloped in near-total darkness. You can barely make out the shadows that rise, and the silence is unbearable, broken only by the creaking of your footsteps." "description">>
<<if $openA1door isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check door|cardAdoor]]">>
<<horizontalEnd>>
<</if>>
<<if $openA1door is true>>
<<horizontalStart>>
<<addDialogue "" "[[Security storage|Aroom]]">>
<<addDialogue "" "[[Back through hallway|Left Corridor]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Back through hallway|Left Corridor]]">>
<<horizontalEnd>>
<</if>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>><<dialogue "" "You find yourself in front of a door with a magnetic lock. The slot clearly indicates that you need a level A magnetic card to open it. The door seems sturdy, and there’s no way to force it open." "description">>
<<addImageV "img/events/a1door.png">>
<<if $cardA is true>>
<<horizontalStart>>
<<addDialogue "" "[[Use card|cardAdooropen]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Left Corridor1]]" "center">>
<<if $openGlass is true>>
<<goto "Aroom2">>
<<else>>
<<dialogue "" "The room is dimly lit, with emergency lights casting a faint, flickering glow. Dusty metal shelves line the walls, and scattered papers lie on the floor. On one wall, a reinforced glass display case stands out. Inside, resting on a metal mount, is a sturdy-looking shotgun." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check reinforced glass|reinforcedglass]]">>
<<if $AmmoTake isnot true>>
<<addDialogue "" "[[Check shelves|ammoescopeta]]">>
<</if>>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Left Corridor1]]" "center">>
<<dialogue "" "A long, dark hallway stretches ahead of you, the shadows dancing along the walls as if something is watching. At the end of the hallway, you can make out a door." "description">>
<<if $openleftdoor isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check door|leftdoor]]">>
<<horizontalEnd>>
<</if>>
<<if $openleftdoor is true>>
<<horizontalStart>>
<<addDialogue "" "[[Go to small office|SRcorridor2]]">>
<<addDialogue "" "[[Move through hallway|Left Corridor1]]">>
<<addDialogue "" "[[Entrance|MainLobby]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Go to small office|SRcorridor2]]">>
<<addDialogue "" "[[Move through hallway|Left Corridor1]]">>
<<horizontalEnd>>
<</if>><<dialogue "" "The hallway stretches into the darkness, illuminated only by the faint light of your flashlight. As you move forward, the shadows seem to take shape, casting fleeting figures of phantoms that quickly flee from the light, vanishing in an instant." "description">>
<<if $openA1door isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check door|cardAdoor]]">>
<<horizontalEnd>>
<</if>>
<<if $openA1door is true>>
<<horizontalStart>>
<<addDialogue "" "[[Security storage|Aroom]]">>
<<addDialogue "" "[[Move through hallway|Left Corridor]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Move through hallway|Left Corridor]]">>
<<horizontalEnd>>
<</if>>
<<dialogue "" "The magnetic lock clicks open, and the heavy door slides aside with a low hiss." "description">>
<<addDialogue "Casey" "Let's see what's in here." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|Aroom]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Left Corridor1]]" "center">>
<<set $openAdoor = true>><<dialogue "" "You take a moment to examine the mechanism before sliding the latch with a dry click. You push again, and this time the door creaks open, revealing the room beyond." "description">>
<<addDialogue "" "Stepping forward, you immediately recognize the place: the main hall. The dim light from the flickering lamps casts shadows over the old seats and the dust-covered floor." "description">>
<<addDialogue "Casey" " Looks like I’m back in the main hall." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|MainLobby]]">>
<<horizontalEnd>>
<<set $openleftdoor = true>><<dialogue "" "The door is locked." "description">>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|MainLobby]]" "center">>
<<set $doorchek = 1>>
<<dialogue "" "The doctor eyes you skeptically as you approach, one eyebrow raised." "description">>
<<addDialogue "Dr. White" "Oh, detective, don’t you have an urgent call to make? I hope the static isn’t interrupting your very important investigation." "talk">>
<<addDialogue "" "He finishes with a carefree smile that doesn’t quite reach his eyes." "description">>
<<addDialogue "" "I don’t like that passive-aggressive tone… it really gets under my skin… it’s hard to stay calm." "thoughts">>
<<addDialogue "Casey" "Maybe… but there’s no signal here." "talk">>
<<addDialogue "Dr. White" "The lines can be a bit… unreliable. Step outside, though, and you might get a better connection." "talk">>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|MainLobby]]" "center">>
<<showNPC "White" "img/characters/doctor/doctorwhite.png" "Dr. Alexander White">>
<<dialogue "" "The hallway near the entrance is in complete disarray, with the floor covered in dust and shattered glass fragments. The walls, chipped and deteriorated, seem to struggle to maintain their original shape, resisting collapse and threatening to take the entire building down with them." "description">>
<<horizontalStart>>
<<if $maindooropen is true>>
<<if $MHRD isnot true>>
<<addDialogue "" "[[Right Door|MHrightdoor1]]">>
<<else>>
<<addDialogue "" "[[Little storage|MHrightroom1]]">>
<</if>>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<if $MCDopen isnot true>>
<<addDialogue "" "[[Move through hallway|Main Hallway2]]">>
<<else>>
<<addDialogue "" "[[Go to Grand Hall|Main Hallway2]]">>
<</if>>
<<addDialogue "" "[[Entrance|MainLobby]]">>
<<horizontalEnd>>
<<if $maindooropen is true && $EndAberrationEvent isnot true && $MHenemy isnot true && $darksituation isnot true>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('darksituation.mp3', 4000);
}, 1000);
<</script>>
<<set $darksituation = true>>
<</if>>
<<disableSanityEvents>>
<<enableSanityEvents>>
<<dialogue "" "The door leading to the right hallway is closed from the other side." "description">>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|MainLobby]]" "center">>
<<set $corridorchek = 1>><<dialogue "" "You move cautiously, observing the surroundings. The room is shrouded in darkness, but the light from a broken lamp in the ceiling illuminates just enough for you to distinguish the details. Dust covers the floor, and the walls, a crumbling gray, seem to tell stories of abandonment. At what seems to be the reception desk, a broken chair is overturned, and where there was once nothing, now rests a folder, placed on the desk. The air is thick with the smell of mold, and an uneasy feeling washes over you, as if something is lurking in the shadows." "description">>
<<if $corridorchek is 1 && $doorcorridorchek is 1 && $doorchek is 1>>\
<<addDialogue "" "That's weird, I'm sure this wasn't here before." "thoughts">>
<<else>>\
<<addDialogue "" "That's strange. A carpet, in perfect condition." "thoughts">>
<</if>>\
<<addDialogue "" "The folder is surprisingly new, with the corners intact and the paper still crisp, as if someone had left it there recently." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check the folder|checkfolder]]">>
<<horizontalEnd>>
<<script>>
completeQuestStage("first_quest");
<</script>>
<<dialogue "" "You push the main door open cautiously, letting the cold air rush in. Stepping inside, you enter the Charles Francis with a mix of determination and caution. Once you reach the center of the room, you carefully survey your surroundings, noting the dim light that fills the space. A faint glow from a broken ceiling lamp barely illuminates anything, but it’s enough to make out the details." "description">>
<<addDialogue "" "As you take it all in, memories of what you’d heard about this place surface. The fire that supposedly destroyed the Charles Francis Psychiatric Hospital fifteen years ago. The news spoke of total devastation, a fire that consumed everything, leaving the building unrecognizable." "description">>
<<addDialogue "" "There are signs of fire damage, but nothing like what they described." "thoughts">>
<<addDialogue "" "Some walls are streaked with smoke, and a few areas show heat damage, but it’s far from a total ruin." "description">>
<<addDialogue "" "Typical media exaggeration. The fire wasn’t nearly as catastrophic as they claimed. The place is almost intact… well, considering it’s been abandoned for fifteen years." "thoughts">>
<<addDialogue "Casey" "It’s not what I expected, but there’s no turning back now." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|MainLobby]]">>
<<horizontalEnd>>
<<set $firstenter = 1>>
<<dialogue "" "You scan the main hall, your eyes sweeping every corner, but there’s no sign of the doctor." "description">>
<<addDialogue "Casey" "Damn it!" "talk">>
<<addDialogue "" "Not a single trace of that bastard White. Clearly, he wasn’t planning to wait around for me to ask my questions." "thoughts">>
<<addDialogue "Casey" "But there’s no way he could’ve just disappeared… He has to be somewhere." "talk">>
<<addDialogue "" "You check every shadow, every nook, but nothing stirs. No sound, no presence—just a chilling emptiness." "description">>
<<addDialogue "" "If there’s one place he’d retreat to, it’s his office. That’s probably where he is." "thoughts">>
<<addDialogue "Casey" "I need to find that elusive rat." "talk">>
<<spacing "20px">>
<<addDialoguePos "" "[[Continue|MainLobby]]" "center">>
<<set $mhr = true>>
<<script>>
completeQuestStage("main_hall_quest");
<</script>>
<<script>>
addQuestWithStages(
"Doctor's office",
"Dr. White has become your prime suspect. Navigate through the psychiatric hospital to locate his office and confront him directly. All the evidence points to him—you need concrete answers before it's too late.",
[
"Locate Dr. White’s office somewhere within the hospital.",
"Confront Dr. White and demand the truth about his involvement."
],
"📋",
"main",
"doctor_quest", // Custom ID
"img/quest.png" // Quest image
);
// Add stage images
if (window.questSystem && window.questSystem.quests["doctor_quest"]) {
window.questSystem.quests["doctor_quest"].stageImages = [
"img/quest.png",
"img/quest.png"
];
}
State.variables.WhiteQuestId = "doctor_quest";
<</script>><<dialogue "" "You stop in front of the main door, the same one the doctor shut in your face when you tried to get in. There’s no lock, no key—just a makeshift blockade meant to keep you from forcing your way inside" "description">>
<<horizontalStart>>
<<addDialogue "" "[[Open|maindooropen]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|MainLobby]]" "center">>
<<dialogue "" "You slide your hand over the metal latch and pull it back with a sharp click. A chain hangs loosely from the handle, barely wrapped around it, as if to slow you down. You push it aside effortlessly." "description">>
<<addDialogue "Casey" "Alright, I’ll leave it open." "talk">>
<<addDialogue "" "The door creaks softly as you push it, and now the main entrance stands open again." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|PsiquiatricEntrance]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|MainLobby]]" "center">>
<<set $maindoorclosed = false>>
<<set $maindooropen = true>>
<<script>>
completeQuestStage("main_hall_quest");
<</script>><<dialogue "" "You open the folder carefully, feeling a mix of curiosity and distrust. On the first page, you find what seems to be a medical record, with a name incomplete and crossed out. You can only partially make out the title: "Subject Alpha-IX." The document talks about its characteristics, with confusing details and phrases that repeat over and over. It mentions "unstable conditions," "continuous observation," "colossal strength", and a "special procedure," but there's not enough clarity on what exactly it's referring to. The information is sparse." "description">>
<<addDialogue "" "What the hell, it sounds like some kind of treatment." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Next page|checkfolder2]]">>
<<horizontalEnd>>
<<dialogue "" "On the next page, the section title immediately catches your attention: Patient – Codename: Subject 38. The description is detailed, almost obsessive: "Blonde, fair skin, long hair, sky-blue eyes, pure..." But it's not just a superficial physical description. The report continues with medical details: "Ideal physical build, fast metabolism, excellent recovery capacity." It mentions that her skin is "unusually smooth," without signs of scars or marks, and specifies that her height and weight fall within normal parameters for her age. The blue eyes are described particularly, as a "striking feature that may influence the psychological reactions of the subjects." The way these observations are written seems like a clinical analysis that goes beyond mere appearance, as if they were evaluating something more than just the physical." "description">>
<<addDialogue "" "Experimental process has not yet begun. She needs to be prepared and closely observed, her physical profile is ideal for the next phase of testing. Says the comment at the bottom." "description">>
<<addDialogue "" "The report doesn't stop there, as it continues with details of the other two patients. One of their descriptions catches your attention: "Red hair, fair skin, green eyes." The other is described as "dark hair, olive skin, brown eyes." Both subjects are in the preliminary stage, being observed and monitored to assess their suitability for the next step in the experiments. The language used is cold, technical, as if each of these details is just another characteristic on a clinical list. However, something stands out: a recurring mention of "enabled pregnancy," a cryptic term that appears several times in relation to both patients. You don’t fully understand what it refers to, but the term sounds disturbing, as if it’s related to some specific procedure, something that goes beyond simple medical care." "description">>
<<addDialogue "" "I need to figure this out." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Next page|checkfolder3]]">>
<<horizontalEnd>>
<<dialogue "" "The next page stops you immediately with a title that makes you hesitate for a moment: Subject 4 - Advanced Stage. Unlike the other reports, this one has fewer descriptive details about the patient's physical appearance. Instead, the report quickly delves into the details of their medical condition, much more concerning and disturbing." "description">>
<<addDialogue "" "The preparation phase is complete. The incubation process has begun, you read in the first line. The report then describes how the subject is undergoingaccelerated cellular modification, implying a drastic change in their biology." "description">>
<<addDialogue "" "Incubation process? What the fuck is this?" "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Continue reading|checkfolder4]]">>
<<horizontalEnd>><<dialogue "" "A faint sound of footsteps breaks the silence in the room, and you quickly turn, alert. In the dim light, a tall figure emerges, with an elegant posture, wearing a black jacket and jeans that contrast with the decaying surroundings." "description">>
<<addDialogue "" "His posture is firm, and his movements are confident as he advances, reflecting unshakable determination. Each step resonates with a steady rhythm in the silent room. His expression is serene and serious, though a faint glimmer of resolve crosses his face, suggesting a focused and resolute mind." "description">>
<<timed 5s>>
<<addDialogue "Dr. White" "Still surprising new visitors after all this time? You weren't expecting company in a place like this, were you?" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Who are you?|TalkDoctor]]">>
<<horizontalEnd>>
<</timed>>
<<timed 4s>>
<<showNPC "White" "img/characters/doctor/doctorwhite.png" "Dr. Alexander White">>
<<unlockCharacterOnly 11>>
<</timed>>
<<set $DoctorTalk = 1>>
<<script>>
playSoundDirect('footsteps.mp3');
<</script>>
<<dialogue "Casey" "Who are you?" "talk">>
<<addDialogue "Dr. White" "Alexander White. I worked here years ago." "talk">>
<<addDialogue "Casey" "And what are you doing here now?" "talk">>
<<addDialogue "Dr. White" "I could ask you the same question, Miss..." "talk">>
<<addDialogue "" "Perceptive. He's sizing me up." "thoughts">>
<<addDialogue "Casey" "Detective Casey. I'm investigating a case of multiple kidnappings." "talk">>
<<addDialogue "" "Dr. White doesn't react. No surprise, no concern. He just raises an eyebrow while showing a slight grimace." "description">>
<<addDialogue "Dr. White" "Hmm. How interesting. A pleasure to meet you, Detective." "talk">>
<<addDialogue "Casey" "Are you going to answer my question, Doctor?" "talk">>
<<addDialogue "Dr. White" "I come by from time to time. This place... has something, don't you think?" "talk">>
<<addDialogue "" "He's lying. Or he actually believes it." "thoughts">>
<<addDialogue "Casey" "Those documents on the table, are they yours?" "talk">>
<<addDialogue "Dr. White" "Ah, yes. Relics from my work. They survived the fire somehow. Funny thing about survival: some things just refuse to disappear." "talk">>
<<addDialogue "" "Lie." "thoughts">>
<<addDialogue "Casey" "So... Did you come back after fifteen years just to pick up some old papers?" "talk">>
<<addDialogue "Dr. White" "The past has ways of resurfacing, Detective. I didn't come looking for them, I simply found them. Call it... coincidence." "talk">>
<<addDialogue "" "Papers that survive a fire and fifteen years abandoned. Sure." "thoughts">>
<<addDialogue "Casey" "And why take them? If you just found them by coincidence, why not leave them here?" "talk">>
<<addDialogue "" "He pauses. For the first time, something flickers in his eyes." "description">>
<<addDialogue "Dr. White" "Because what happened here isn't over, Detective. These records... they're the only proof that certain things actually happened. Only those of us who were here understand their true value." "talk">>
<<addDialogue "" "There it is. He admitted he came for them." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Ask about incubation process|TalkDoctor1]]">>
<<horizontalEnd>>
<<showNPC "White" "img/characters/doctor/doctorwhite.png" "Dr. Alexander White">><<dialogue "Casey" "Those documents mentioned an 'incubation process'. What's that got to do with mental disorders?" "talk">>
<<addDialogue "Dr. White" "Ah, that." "talk">>
<<addDialogue "" "He shifts slightly. Choosing his words carefully." "description">>
<<addDialogue "Dr. White" "It's a term we used to describe certain aspects of... the human psyche. We'd say a patient 'incubates' their traumas, their pathologies. The mind needs time to process certain experiences before symptoms manifest." "talk">>
<<addDialogue "" "Another lie. Does he think I'm stupid?" "thoughts">>
<<addDialogue "Casey" "I saw references to physical medical procedures in those files, not just psychiatric notes. Why would they be together?" "talk">>
<<addDialogue "Dr. White" "Detective, not everything we dealt with here was purely psychiatric. Physical and biological conditions influence the mind. These are technical matters that require specialized understanding—" "talk">>
<<addDialogue "Casey" "That I couldn't possibly understand. Yeah, I'm getting that message loud and clear." "talk">>
<<addDialogue "" "He's hiding something big." "thoughts">>
<<addDialogue "Dr. White" "I'm not trying to condescend, but some things can't be reduced to simple explanations. Especially for those who expect every answer to fit neatly into a box." "talk">>
<<addDialogue "Casey" "I don't need things simple, Doctor. I need them truthful. And your evasive answers tell me plenty." "talk">>
<<addDialogue "" "His jaw tightens almost imperceptibly." "description">>
<<addDialogue "Dr. White" "Those documents contain confidential patient information, Detective. I'm legally obligated to protect their privacy. I'm sure you understand the implications." "talk">>
<<addDialogue "" "The legal shield. Of course." "thoughts">>
<<addDialogue "" "The doctor extends his hand toward the folder. Firm. Expectant." "description">>
<<addDialogue "Dr. White" "If you want formal access to these records, you can file the appropriate request. Until then, I must insist you return those documents." "talk">>
<<addDialogue "" "Not a request. An order." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[I don't need your lessons|TalkDoctor2]]">>
<<addDialogue "" "[[Give the documents]]">>
<<horizontalEnd>>
<<showNPC "White" "img/characters/doctor/doctorwhite.png" "Dr. Alexander White">><<dialogue "Casey" "I'm not here for you to lecture me on how to do my job, Doctor. I'm investigating, and what I've found in these documents... doesn't match what you've told me." "talk">>
<<addDialogue "" "The doctor's expression hardens. A flash of irritation crosses his face." "description">>
<<addDialogue "Dr. White" "This isn't about lectures, Detective. It's about what's legal and what's not. Looking through patient files without a warrant... that's a crime. I hate to think what that could mean for your investigation. You shouldn't have touched those documents. It's not just disrespectful to me, but to the patients who trusted this institution." "talk">>
<<addDialogue "" "Shit. He's right. He's got me cornered." "thoughts">>
<<addDialogue "" "The doctor's gaze softens again. Without lowering his hand, he continues." "description">>
<<addDialogue "Dr. White" "If you return them now, I'll forget this happened. We can keep this between professionals. Otherwise... I'll have to report this breach of confidentiality. I don't think you want that on your record, do you?" "talk">>
<<addDialogue "" "He's threatening me. Subtly, but it's a threat." "thoughts">>
<<addDialogue "Casey" "You know there's something more here. Something worth hiding." "talk">>
<<addDialogue "Dr. White" "What I know, Detective, is that you have two choices: follow protocol or face the consequences. Choose wisely." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Give the documents|Give the documents2]]">>
<<horizontalEnd>>
<<set $UnKindGirl = 1>>
<<showNPC "White" "img/characters/doctor/doctorwhite.png" "Dr. Alexander White">><<dialogue "" "The weight of the moment presses on your chest, but you force yourself to keep your composure. Jaw tight, you hand the documents over to Doctor White." "description">>
<<addDialogue "Casey" "Here. I’m done with this..." "talk">>
<<addDialogue "Dr. White" "Done? No, Detective Casey… this is you finally choosing the sensible path. I knew you’d get there eventually." "talk">>
<<addDialogue "" "He accepts the papers with a deliberate calmness, like he’s been expecting this exact outcome all along. Not a flicker of triumph shows on his face—just that maddening, measured patience of his. It makes the room feel smaller, the air heavier, as if he's the one controlling how much you’re allowed to breathe." "description">>
<<addDialogue "Dr. White" "You look tense. Don't worry. Cooperation is always the first step to clarity." "talk">>
<<addDialogue "" "A surge of heat crawls up your neck. You hate how steady he sounds, how little your defiance seems to matter to him. Helplessness threatens to slip through the cracks, but you grind your teeth and swallow it back." "description">>
<<addDialogue "Casey" "...Don’t get comfortable. This isn’t over." "thoughts">>
<<addDialogue "" "Not even close." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Ask about Subject Alpha-IX|nomorequestions]]">>
<<horizontalEnd>>
<<showNPC "White" "img/characters/doctor/doctorwhite.png" "Dr. Alexander White">>
<<dialogue "Casey" "Doctor White, I need to ask you a couple of questions about the subject..." "talk">>
<<addDialogue "" "Right then, your phone suddenly cuts through the conversation with a loud, jarring ringtone. The sound bounces around the empty room as you look down at the screen, stunned. Mayor Quentin’s name flashes across it." "description">>
<<addDialogue "Dr. White" "Judging by that look on your face, I’m guessing this one’s important..." "talk">>
<<addDialogue "" "Who does this guy think he is?" "thoughts">>
<<addDialogue "Casey" "Maybe..." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Answer the call|answercalldoctor]]">>
<<horizontalEnd>>
<<showNPC "White" "img/characters/doctor/doctorwhite.png" "Dr. Alexander White">>
<<timed 2s>>
<<script>>
playSoundDirect('codec.mp3');
<</script>>
<</timed>>
<<timed 4s>>
<<script>>
playSoundDirect('codec.mp3');
<</script>>
<</timed>>
<<timed 6s>>
<<script>>
playSoundDirect('codec.mp3');
<</script>>
<</timed>>
<<timed 8s>>
<<script>>
playSoundDirect('codec.mp3');
<</script>>
<</timed>><<dialogue "" "The weight of the moment bears down on you. With gritted teeth, you hand the documents over to Doctor White." "description">>
<<addDialogue "Casey" "Here. I'm done with this..." "talk">>
<<addDialogue "Dr. White" "I knew you'd see reason, Detective. In the end, reason always prevails." "talk">>
<<addDialogue "" "The silence that follows is suffocating. The doctor remains calm, unaffected. His expression stays unreadable." "description">>
<<addDialogue "" "This isn't over, White. It's just beginning." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Ask about Subject Alpha-IX|nomorequestions]]">>
<<horizontalEnd>>
<<showNPC "White" "img/characters/doctor/doctorwhite.png" "Dr. Alexander White">><<dialogue "" "You answer the call, but the sound comes through distorted — nothing but a tangle of static tearing at your ear. You adjust the volume, try again, but it’s useless. All you hear are broken bursts of noise, erratic and sharp. No voice. No words. Quentin’s name keeps glowing on the screen, yet nothing reaches you." "description">>
<<addDialogue "Casey" "What the...? Seems like there’s no signal..." "talk">>
<<addDialogue "" "You hang up, frustration tightening your grip on the phone. As you lower it, the doctor watches you with that unsettling calm of his — precise, almost rehearsed — before he finally speaks." "description">>
<<addDialogue "Dr. White" "I’m afraid the signal in here is… unstable. The building’s deterioration tends to interfere with communications. If you step outside, you might have better luck… maybe even manage to speak with the mayor this time." "talk">>
<<addDialogue "" "How convenient… I’m not sure going outside is the best idea… but the mayor wouldn’t call me for nothing." "thoughts">>
<<addDialogue "Casey" "Alright. I’ll head outside and try again. Stay here — I still have a few more questions for you." "talk">>
<<addDialogue "" "The doctor gives you a wide, satisfied smile — the kind someone wears when a piece lands exactly where they wanted it." "description">>
<<addDialogue "Dr. White" "Of course, Detective. I’ll be right here. I wouldn’t want to miss those… revealing questions of yours." "talk">>
<<addDialogue "" "Not like I’d get very far with my leg like this anyway..." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[I'll come back|MainLobby]]">>
<<horizontalEnd>>
<<showNPC "White" "img/characters/doctor/doctorwhite.png" "Dr. Alexander White">>
<<script>>
playSoundDirect('staticphone.mp3');
<</script>><<dialogue "" "The door that was previously closed is now open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|MHrightroom1]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|MainLobby]]" "center">>
<<set $MHRD = true>>
<<if window.gameState.lanternOn>>
<<goto "MHrightroom1Light">>
<<else>>
<<dialogue "" "A narrow and cluttered space, with shelves filled with cleaning supplies in worn-out bottles. Dirty rags, buckets, and a broken mop rest in a corner. The air carries a faint smell of old chemicals and stagnant moisture." "description">>
<<addDialogue "Casey" "I can't see anything useful." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|Main hallway]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<dialogue "" "The main hallway stretches in the dim light, with flickering lights barely illuminating the cracked walls. Closed doors on either side seem to hide forgotten secrets, while a heavy, damp air fills the space. The silence is eerie." "description">>
<<horizontalStart>>
<<if $maindooropen is true>>
<<if $MHleftdoor isnot true>>
<<addDialogue "" "[[Left Door|MHleftdoor]]">>
<<else>>
<<addDialogue "" "[[Lockers room|MHleftroom]]">>
<</if>>
<<if $MHrightdoor isnot true>>
<<addDialogue "" "[[Right Door|MHrightdoor]]">>
<<else>>
<<addDialogue "" "[[Yellow elevators|MHrightroom]]">>
<</if>>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<if $MCDopen isnot true>>
<<addDialogue "" "[[Move through hallway|Main Hallway3]]">>
<<else>>
<<addDialogue "" "[[Go to Grand Hall|Main Hallway3]]">>
<</if>>
<<addDialogue "" "[[Go to entrance|Main hallway]]">>
<<horizontalEnd>>
<<disableSanityEvents>>
<<enableSanityEvents>><<if $MHSearch isnot true>>
<<dialogue "" "The storage room is a small, cluttered space with dust-covered shelves and boxes stacked in the corners. The light from your flashlight reveals old tools and remnants of forgotten materials." "description">>
<<else>>
<<dialogue "" "You search every corner of the room, but everything is either empty or useless. You sigh in frustration. There’s nothing useful left here." "description">>
<</if>>
<<horizontalStart>>
<<if $MHSearch isnot true>>
<<addDialogue "" "[[Search something|MHSearch]]">>
<</if>>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|Main hallway]]" "center">>
<<if $mhlockpicks isnot true>>
<<dialogue "" "You search through the shelves, pushing aside worn-out bottles and you find 2 lockpick." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take lockpicks|MHSearch1|?inventoryFull]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|MHrightroom1]]" "center">>
<<else>>
<<dialogue "" "You search through the shelves, the bottle of chemicals stills there." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take chemicals|MHSearch3|?inventoryFull]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|MHrightroom1]]" "center">>
<</if>><<dialogue "" "You take the lockpicks and slip them into your backpack." "description">>
<<addDialogue "" "The metal is rusted, and the handle is somewhat worn, but it might still be useful." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Search more|MHSearch2]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|MHrightroom1]]" "center">>
<<script>>
window.giveLockpicks(2)
<</script>>
<<set $mhlockpicks = true>>
<<dialogue "" "You grab the chemicals and store it in your backpack." "description">>
<<addDialoguePos "" "[[Back|MHrightroom1]]" "center">>
<<script>>
const itemKey = 'chemicals';
const itemName = 'Bottle of chemicals';
const itemDescription = 'A bottle containing some unknown chemical, as its label has been worn away over time.';
const itemValue = 50;
const imagePath = `img/items/special/chemicals.png`;
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "special",
image: imagePath,
stackable: true,
maxStack: 1,
value: itemValue,
weight: 0.5,
isSellable: true,
};
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 1,
img: imagePath
};
//Adding item ro inventory
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
window.ShopSystem.populateSellItems();
<</script>>
<<set $MHSearch = true>>
<<dialogue "" "As you continue exploring the dark halls of the asylum, something faintly glimmers on a dusty table. Approaching, you find a small bottle of chemicals, its label barely legible and the liquid inside murky. The pungent smell makes you wrinkle your nose; something about its appearance tells you it shouldn't be there. You find a boittle of chemicals." "description">>
<<addDialogue "" "They're not in the best condition..." "thoughts">>
<<if $FranklinMeet isnot true>>
<<addDialogue "Casey" "I don't know why the hell I want this... anyway." "talk">>
<<else>>
<<addDialogue "Casey" " Maybe Franklin will be interested." "talk">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Take it|MHSearch3|?inventoryFull]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Leave|MHrightroom1]]" "center">>
<<dialogue "" "The door is open now." "description">>
<<addDialogue "" "Someone's been through here, opening doors..." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|MHleftroom]]">>
<<addDialogue "" "[[Back|Main Hallway2]]">>
<<horizontalEnd>>
<<if window.gameState.lanternOn>>
<<goto "MHleftroomLight">>
<<else>>
<<dialogue "" "The darkness is absolute. You can't see anything." "description">>
<<addDialoguePos "" "[[Exit|Main Hallway2]]" "center">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<set $MHleftdoor = true>><<dialogue "" "You push the door, and it shifts, indicating it's unlocked." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|MHrightroom]]">>
<<addDialogue "" "[[Back|Main Hallway2]]">>
<<horizontalEnd>>
<<if window.gameState.lanternOn>>
<<goto "MHrightroomLight">>
<<else>>
<<dialogue "" "The darkness is absolute. You can't see anything." "description">>
<<addDialoguePos "" "[[Exit|Main Hallway2]]" "center">>
<</if>>
<<set $MHrightdoor = true>><<dialogue "" "The small, cluttered room is filled with dust and old furniture. An aging table sits in the center, covered in crumpled papers, with a half-toppled chair beside it. Against the wall, rusted lockers and a worn-out filing cabinet with moisture-damaged documents complete the scene." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check first loocker|FLleftroom]]">>
<<addDialogue "" "[[Check second loocker|SLleftroom]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Main Hallway2]]" "center">>
<<dialogue "" "The locker door is jammed and cannot be opened." "description">>
<<if $MHfight is 1>>
<<addDialogue "Casey" "Shit!" "talk">>
<</if>>
<<addDialoguePos "" "[[Back|MHleftroom]]" "center">>
<<dialogue "" "You open the locker, it's empty." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Get inside|MHlockerinside1]]">>
<<addDialogue "" "[[Back|MHleftroom]]">>
<<horizontalEnd>>
<<dialogue "" "You slip into the locker and carefully close the door. Inside, the space is tight but enough to hide. Darkness surrounds you, and the only sound is your own breathing. You stay still for a few seconds, but nothing happens. Everything is quiet." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "" "If danger is near, this could be a good hiding spot. But you can't stay here forever." "thoughts">>
<</switch>>
<<addDialoguePos "" "[[Exit|MHleftroom]]" "center">>
<<if $MHfight is 1>>
<<goto "MHpatientskip">>
<</if>>
<<dialogue "" "The door swings open slowly on its hinges. Through the gap in the locker, you see a shadow move in the dim light—a patient advancing slowly. Their footsteps echo through the room, unhurried, searching the space." "description">>
<<addDialogue "Patient" "Nobody..." "talk">>
<<addDialogue "" "So close..." "thoughts">>
<<addDialogue "" "The patient walks for a few more seconds before turning around and leaving the way they came. Silence fills the room once again." "description">>
<<addDialoguePos "" "[[Back|MHleftroom]]" "center">>
<<set $MHenemy = false>>
<<set $MHfight = 2>>
<<removecountdown>>
<<script>>
stopAllMusic();
<</script>>
<<timed 1s>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('darksituation.mp3', 4000);
}, 1000);
<</script>>
<</timed>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "You push the door open and step into a wide, silent room. To your left, you find yellow elevators with paint nearly worn away. To your right, several waiting chairs are lined up against the wall, covered in dust." "description">>
<<addDialogue "" "The windows, completely boarded up with old planks, block any trace of outside light, shrouding the room in an eerie gloom." "description">>
<<addDialogue "" "This place seems like paradise..." "thoughts">>
<<addDialogue "Casey" " For those running from civilization." "talk">>
<<default>>
<<dialogue "" "You enter a silent room. To the left, the elevators stand still; to the right, dusty chairs are lined up against the wall. The boarded-up windows plunge the room into an eerie gloom." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Elevators|Yellowelevator]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Main Hallway2]]" "center">><<switch visited()>>
<<case 1>>
<<dialogue "" "You approach the elevators. The button panel is somewhat worn, but still visible." "description">>
<<default>>
<<dialogue "" "The yellow elevators stand right in front of you." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Call elevator|EYcall]]">>
<<if $YellowElevatorInspect isnot true>>
<<addDialogue "" "[[Inspect elevator|EYinspect]]">>
<</if>>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|MHrightroom]]" "center">><<switch visited()>>
<<case 1>>
<<dialogue "" "You press the button of one of the elevators, but nothing happens. No sound, no sign of it working. You repeat the motion on the other elevator. The same." "description">>
<<addDialogue "Casey" "It seems the emergency power doesn’t work with the elevators." "talk">>
<<addDialogue "" "I should've figured as much..." "thoughts">>
<<case 2>>
<<dialogue "" "You press the button of one of the elevators, but nothing happens. No sound, no sign of it working. You repeat the motion on the other elevator. The same." "description">>
<<addDialogue "Casey" "Maybe there's a way to restore the power." "talk">>
<<default>>
<<dialogue "" "You press the button of one of the elevators, but nothing happens." "description">>
<</switch>>
<<addDialoguePos "" "[[Back|Yellowelevator]]" "center">><<dialogue "" "You approach the elevator, noticing something strange. On the frame, near the doors, you find recent marks, as if someone had tampered with the controls or the panel. A faint trail of disturbed dust..." "description">>
<<addDialogue "" "Doctor White... No doubt about it. The marks are too fresh. He was here, there's no question. If he used these elevators... That means they were working. It's possible they were operational just recently. But now, who cut the power? And why?" "description">>
<<addDialogue "Casey" " He probably ordered someone to do it..." "talk">>
<<addDialogue "" "He must've set this up to trap me here..." "description">>
<<addDialogue "Casey" " He probably ordered someone to do it..." "talk">>
<<addDialogue "" "If I want to make something work, I'll have to restore the power. The maintenance room is probably in the basement..." "thoughts">>
<<addDialogue "Casey" "... And the doctor's office is probably upstairs. Anyway, I have to keep going." "talk">>
<<addDialoguePos "" "[[Back|Yellowelevator]]" "center">>
<<if $PowerRestoreQuest isnot true>>
<<set $PowerRestoreQuest = true>>
<<script>>
addQuestWithStages(
"Power Restoration",
"The hospital is shrouded in complete darkness. Your first priority is to locate the maintenance room, though restoring power won't be a simple task—you'll need to figure out what went wrong (No more content for now).",
[
"Find the maintenance room. There might be tools or clues inside.",
"Find the first fuse. It could be hidden somewhere in the lower levels.",
"Find the second fuse. Check staff-only areas or locked storage rooms.",
"Insert the fuses and restore the power from the generator room."
],
"📋",
"main",
"restore_power", // Custom ID
"img/quest.png" // Quest image
);
// Add stage images so completion notifications show the quest image
if (window.questSystem && window.questSystem.quests["restore_power"]) {
window.questSystem.quests["restore_power"].stageImages = [
"img/quest.png", // Stage 1
"img/quest.png", // Stage 2
"img/quest.png", // Stage 3
"img/quest.png" // Stage 4
];
}
State.variables.powerQuestId = "restore_power";
<</script>>
<</if>><<if $MHenemy isnot true>>
<<dialogue "" "The door is locked." "description">>
<<else>>
<<dialogue "" "Someone is banging on the door from the other side; it's about to open." "description">>
<</if>>
<<addDialoguePos "" "[[Back|Main Hallway3]]" "center">>
<<set $doorcorridorchek = 1>>
<<if $MHfight gte 2>>
<<goto "MCDopen">>
<</if>>
<<if $MHenemy is true>>
<<timed 1s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<<timed 4s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<<timed 4s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<<timed 4s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<</timed>>
<</timed>>
<</timed>>
<</timed>>
<</if>><<dialogue "" "The eastern end of the hall rises like a massive prison of concrete and metal. One of the high windows is shattered, allowing pale moonlight to spill across the cracked floor. Dust drifts through the air, caught in the glow, revealing old stains on the walls and scattered papers. From here, a hallway leads further east, while another curves back toward the building’s entrance." "description">>
<<horizontalStart>>
<<if $SecurityRoom isnot true>>
<<addDialogue "" "[[Check security door]]">>
<</if>>
<<if $StorageDoor isnot true>>
<<addDialogue "" "[[Check door]]">>
<</if>>
<<if $SecurityRoom is true>>
<<addDialogue "" "[[Security Room|SecurityRoom]]">>
<</if>>
<<if $StorageDoor is true>>
<<addDialogue "" "[[Storage]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Go to bedrooms corridor|CellCorridorA]]">>
<<addDialogue "" "[[Entrace hallway|Main Hallway3]]">>
<<addDialogue "" "[[Grand Hall - West|Grand Hall2]]">>
<<horizontalEnd>>
<<if $IntroVision isnot true>>
<<goto "Event1">>
<</if>>
<<if $IntroVision isnot true>>
<<script>>
stopAllMusic();
<</script>>
<<else>>
<<if $insidesound isnot true>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('lobbytheme.mp3', 4000);
}, 1000);
<</script>>
<<set $insidesound = true>>
<</if>>
<</if>>
<<script>>
window.setLighting(80);
<</script>><<dialogue "" "You stop in front of the cloed door. A dull thud echoes against the wood… then another. There’s a brief pause, just a whisper of silence, before it happens again." "description">>
<<addDialogue "" "Doesn't seem like a rhythmic pattern..." "thoughts">>
<<addDialogue "Casey" "Someone is trying to force its way through." "talk">>
<<timed 3s>>
<<horizontalStart>>
<<addDialogue "" "[[Who’s there?]]">>
<<addDialogue "" "[[Stay silent|Main Hallway3]]">>
<<horizontalEnd>>
<</timed>>
<<set $MHenemy = true>>
<<set $MHfight = 1>>
<<timed 3s>>
<<countdown 20 "Enemydoor">>
<</timed>>
<<timed 2s>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('alert.mp3', 4000);
}, 1000);
<</script>>
<</timed>>
<<timed 2s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<</timed>>
<<timed 4s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<</timed>>
<<timed 6s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<</timed>>
<<timed 8s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<</timed>>
<<timed 10s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<</timed>>
<<timed 12s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<</timed>>
<<timed 14s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<</timed>>
<<timed 18s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<</timed>>
<<timed 20s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<</timed>><<dialogue "" "The door, though not broken, shows clear signs of the violence it endured. The hallway leading to the next room is now accessible, and the dim light reveals its vast interior. Through the opening, the sound of echoes from the psychiatric facility mingles with an unsettling silence, as if the space is waiting for something more." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Grand Hall]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Main Hallway3]]" "center">>
<<set $MCDopen = true>><<dialogue "Casey" "Who's there?" "talk">>
<<addDialogue "" "You don't hear any response; the sound of the blows intensifies, and you can hear the door slowly giving way." "description">>
<<addDialogue "Casey" "What do you want?" "talk">>
<<addDialogue "" "You still don’t hear any response; the door is giving way more and more, it’s about to open." "description">>
<<addDialogue "" "Shit, no answer. I have to brace myself for whatever comes next." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Main Hallway3]]">>
<<horizontalEnd>>
<<timed 1s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<<timed 4s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<<timed 4s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<<timed 4s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<</timed>>
<</timed>>
<</timed>>
<</timed>>
<<run startAdvancedBattle([
{
type: 'madPatient',
hp: 70,
distance: 20,
randomDistance: true,
speed: "2-5",
minMovement: 2,
maxMovement: 5,
damage: 10,
DamageIgnore: {
'pistol': 0.5,
'rifle': 0.2,
'shotgun': 0.1,
'melee': 0.4,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.4,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', true)>>
<<set $enemyPresent = false>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<dialogue "" "The door trembles with a creak as something pushes against it. The lock snaps with a sharp crack, and the door slowly swings open, revealing a staggering silhouette in the doorway." "description">>
<<addDialogue "" "It's a man, or what’s left of one." "thoughts">>
<<addDialogue "Casey" "Of course... what would a perfect night be without another damn walking corpse?" "talk">>
<<addDialogue "" "Without warning, the staggering figure lunges at you with a guttural growl, arms outstretched like claws. Its movements are clumsy yet relentless, driven by blind fury." "description">>
<<addDialogue "Patient" "Graaagh!" "talk">>
<<spacing "20px">>
<<addDialoguePos "" "[[Fight him|Enemydoorfight]]" "center">>
<<script>>
setTimeout(() => {
audioSystemCrossfade('darksituation.mp3', 4000);
}, 1000);
<</script>>
<<showNPC "patient" "img/monsters/patients/madpatient.png" "Patient">>
<<set $EventE6 = 1>><<dialogue "" "The door is locked, you need a level A access card." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "" "It wasn't going to be that easy..." "thoughts">>
<</switch>>
<<horizontalStart>>
<<if $cardA is true>>
<<addDialogue "" "[[Use card|SecurityRoomOpen]]">>
<</if>>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Grand Hall]]" "center">>
<<dialogue "" "The room is shrouded in dim light, barely illuminated by the pale green glow of the emergency lights. Multiple monitors hang on the wall. A control panel sits beneath them. There's a metal desk with a computer, scattered papers, and an empty cup. A secured cabinet on the opposite wall and an office chair tipped over in front of the monitors." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check monitors|Smonitors]]">>
<<addDialogue "" "[[Check secured cabine|SRcabinet]]">>
<<addDialogue "" "[[Check desk|SRdesk]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|Grand Hall]]" "center">>
<<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|Storage]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Grand Hall]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "StorageLight">>
<<else>>
<<dialogue "" "The room is completely dark. There’s no visible source of light, and your eyes fail to adjust." "description">>
<<horizontalStart>>
<<addDialoguePos "" "[[Back|Grand Hall]]" "center">>
<<horizontalEnd>>
<</if>>
<<set $StorageDoor = true>><<if window.gameState.lanternOn>>
<<goto "CellCorridorALight">>
<<else>>
<<dialogue "" "The hallway fades into darkness, leading to a maze of corridors where the patients' rooms await." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms A|CellCorridorA2]]">>
<<addDialogue "" "[[Grand Hall|Grand Hall]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<script>>
window.setLighting(50);
<</script>>
<<disableSanityEvents>>
<<enableSanityEvents>><<dialogue "" "The western side is quieter, but just as oppressive. Moonlight filters through grimy overhead panels, casting long shadows across broken furniture and steel beams. Most of the ceiling lights are dead, save for one flickering bulb. To the north, a dark corridor stretches into the facility. Another hallway, heading west, bears a crooked sign barely clinging to the wall: Laboratory." "description">>
<<horizontalStart>>
<<if $ghroom2 isnot true>>
<<addDialogue "" "[[Check Door|GHdoor2]]">>
<<else>>
<<addDialogue "" "[[Stairwell corridor|GHroom2]]">>
<</if>>
<<if $ghroom3 isnot true>>
<<addDialogue "" "[[Check Door|GHdoor3]]">>
<<else>>
<<addDialogue "" "[[Janitor's closet|GHroom3]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Grand Hall - East|Grand Hall]]">>
<<addDialogue "" "[[Go to laboratory|LabCorridorA]]">>
<<horizontalEnd>>
<<script>>
window.setLighting(80);
<</script>>
<<set $LabInstance = false>>
<<dialogue "" "The air grows heavy, and a strange sensation fills your chest. Darkness seems to creep into every corner, and something in the atmosphere makes you feel watched. A sharp pain pierces your head, and your thoughts blur. Suddenly, your vision distorts, as if the world around you has twisted." "description">>
<<addDialogue "Casey" "Agh! My head...!" "talk">>
<<addDialogue "" "You clutch your temple, feeling the pain intensify. The pressure in your skull is unbearable, as if something is trying to force its way into your mind. And then, a cold sensation takes hold of you... you feel a presence. It's watching you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Event1b]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(60)
<</script>>
<<script>>
playSoundDirect('ab01.mp3');
<</script>>
<<timed 10s>>
<<script>>
playSoundDirect('ab01.mp3');
<</script>>
<</timed>>
<<timed 20s>>
<<script>>
playSoundDirect('ab01.mp3');
<</script>>
<</timed>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('darksituation2.mp3', 4000);
}, 1000);
<</script>>
<<set $AberrationEvent = 1>><<dialogue "" "You swipe the magnetic card through the reader. A sharp beep confirms access and the electronic lock disengages with a metallic click. The security room door slowly opens, revealing the dim interior." "description">>
<<addDialogue "" "Luckily the door works with the emergency light..." "thoughts">>
<<horizontalStart>>
<<addDialoguePos "" "[[Enter|SecurityRoom]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Grand Hall]]" "center">>
<<set $SecurityRoom = true>>
<<dialogue "" "The storage room is spacious. Empty, disorganized metal shelves line the walls. On one side, four metal lockers stand closed, each secured with a rusty padlock. The floor is covered in dirt, scattered paper fragments, and stacks of empty boxes arranged without order." "description">>
<<addDialoguePos "" "[[Exit|Grand Hall]]" "center">>
<<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|GHroom2]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Grand Hall2]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "GHroom2Light">>
<<else>>
<<dialogue "" "It’s dark. You can barely make out the cracked walls, and the floor creaks beneath your feet. In the center, two rusted staircases come into view: one ascends but is blocked by debris; the other descends, possibly sealed with boards and chains. Above, a broken light flickers, casting fleeting shadows before plunging you back into darkness." "description">>
<<addDialoguePos "" "[[Exit|Grand Hall2]]" "center">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<set $ghroom2 = true>>
<<script>>
window.setLighting(60);
<</script>><<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|GHroom3]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Grand Hall2]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "GHroom3Light">>
<<else>>
<<dialogue "" "The room is small and suffocating, the dim light barely illuminating the cluttered space. The air is thick with dust, and you can only make out vague shapes in the gloom. A single bulb hangs from the ceiling, flickering weakly as it casts unsettling shadows on the rust-stained walls." "description">>
<<addDialoguePos "" "[[Exit|Grand Hall2]]" "center">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<set $ghroom3 = true>>
<<script>>
window.setLighting(60);
<</script>><<if window.gameState.lanternOn>>
<<goto "LabCorridorALight">>
<<else>>
<<dialogue "" "The hallway is narrow and damp, lined with metal doors on both sides. The walls are cold to the touch, and the air feels heavier the farther you go." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Grand Hall|Grand Hall2]]">>
<<addDialogue "" "[[Go to laboratory|LabCorridorA2]]">>
<<horizontalEnd>>
<</if>>
<<script>>
window.setLighting(60);
<</script>>
<<dialogue "" "The floor is covered with expired cleaning supplies, some leaking into dark, sticky puddles. A metal locker stands against the wall, its door slightly ajar, casting shadows inside. A cracked mirror above the sink reflects the desolation of the room. The flashlight casts sharp beams of light, but the place still feels suffocating, the air thick with the scent of mold, bleach, and something faintly metallic." "description">>
<<horizontalStart>>
<<if $ghr isnot true>>
<<addDialogue "" "[[Check room|Check]]">>
<</if>>
<<if $ActiveBB is true>>
<<addDialogue "" "[[Check mirror|CheckMirror]]">>
<</if>>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|Grand Hall2]]" "center">>
<<script>>
window.setLighting(80);
<</script>><<dialogue "" "You stand in a cold room of the abandoned psychiatric hospital. Cracked walls are covered in mold. The floor, littered with dust and broken glass, creaks underfoot. At the center, two rusted staircases: one spirals upward, blocked by debris; the other descends, sealed with boards and chains. A damp odor fills the air, and a broken lamp flickers faintly." "description">>
<<addDialoguePos "" "[[Exit|Grand Hall2]]" "center">>
<<script>>
window.setLighting(80);
<</script>><<dialogue "" "You crouch down, inspecting the dusty floor of the room. Amid the shadows and clutter, something catches your attention—a small metal box, half-covered by torn papers and scattered debris. You open it carefully, the sound of the lid sliding against the metal startling in the silence. Inside, you find a faded, discolored photograph—its face familiar, yet forgotten. The edges are worn, and the image has lost nearly all of its color, but there’s something in those eyes that feels disturbingly close." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take photo|Check2]]">>
<<horizontalEnd>>
<<addDialoguePos "" "[[Back|GHroom3]]" "center">><<switch visited()>>
<<case 1>>
<<dialogue "" "You approach the cracked mirror above the sink, its surface broken in several places. The reflection is distorted, and for a moment, you lose yourself in your own reflection. The face staring back at you seems strange, like that of a stranger. The lines around your eyes, the wear of sleepless nights, the ghost of something darker beneath the surface." "description">>
<<addDialogue "" "Am I losing myself? This place... it’s making me question everything. What’s real? What’s not?" "thoughts">>
<<addDialogue "" "You shake your head, trying to clear the fog." "description">>
<<addDialogue "Casey" "There’s no time to lose." "talk">>
<<addDialoguePos "" "[[Back|GHroom3]]" "center">>
<<default>>
<<dialogue "" "You glance at your reflection once more. The cracked mirror shows only fragments of your face, distorted and fragmented, a reminder of the broken reality surrounding you." "description">>
<<addDialoguePos "" "[[Back|GHroom3]]" "center">>
<</switch>><<dialogue "" "The photograph shows a pregnant woman sitting on a bench in the psychiatric hospital's garden. Despite the somber setting, there’s a tenderness in her expression—a quiet mix of exhaustion and affection. Next to her, a girl of about six leans gently against her belly, arms wrapped around it in a small, careful embrace. The child has dark hair and wide, serious eyes, as if she understands more than she should at her age. The woman wears a white gown, most likely that of a patient. You turn the photograph over and discover a faint Diary Note in ink, nearly lost to time." "description">>
<<addDialogue "" "A pregnant woman, a child... what does all this have to do with the case? I’m not sure what surprises me more, the fact that the doctor was so close to these people or that no one ever asked about them before. I don’t have time to dwell too much on this photo, but... I can’t help wondering." "thoughts">>
<<addDialogue "Casey" "What happened to them?" "talk">>
<<addDialogue "" "Next to the photo rests a bottle of chemicals. The label is faded with time, barely legible, though the warning symbol still stands out. The liquid inside looks stable, though you can’t help but wonder what it was used for… and by whom." "description">>
<<addImage "img/documents/old_photo_pregnant1.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take chemicals|chemgh3|?inventoryFull]]">>
<<addDialogue "" "[[Let it|GHroom3]]">>
<<horizontalEnd>>
<<set $ghr = true>>
<<script>>
window.addDocumentWithNotification(
"old_photo_pregnant_woman_child",
"Old Photograph",
"Aged photo of an unknown pregnant woman and girl with crossed-out faces.",
"",
"photo",
"📷",
{
imagePath: "img/documents/old_photo_pregnant1.png",
location: "Found on the floor of the janitor's room in Charles Frances Hospital.",
photographer: "Photographer unknown",
frontDescription: `An old, worn photograph of a pregnant woman and a young girl, their faces deliberately erased.`
}
);
<</script>>
<<script>>
playSoundDirect('page.mp3');
<</script>><<dialogue "" "You grab the chemicals and store it in your backpack." "description">>
<<addDialoguePos "" "[[Back|GHroom3]]" "center">>
<<set $chemicals += 1>>
<<script>>
const itemKey = 'chemicals';
const itemName = 'Bottle of chemicals';
const itemDescription = 'A bottle containing some unknown chemical, as its label has been worn away over time.';
const itemValue = 50;
const imagePath = `img/items/special/chemicals.png`;
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "special",
image: imagePath,
stackable: true,
maxStack: 1,
value: itemValue,
weight: 0.5,
isSellable: true,
};
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 1,
img: imagePath
};
//Adding item ro inventory
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
window.ShopSystem.populateSellItems();
<</script>><<if window.gameState.lanternOn>>
<<goto "LabCorridorA2Light">>
<<else>>
<<dialogue "" "You walk down a long corridor, its walls stained with time and neglect. Every step forward is met with the faint creak of the floor beneath your feet." "description">>
<<horizontalStart>>
<<if $LabDoorOpen isnot true>>
<<addDialogue "" "[[Check laboratory door|LabADoor]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<if $LabDoorOpen is true>>
<<addDialogue "" "[[Laboratory|LabA]]">>
<</if>>
<<addDialogue "" "[[Back to Grand Hall|LabCorridorA]]">>
<<horizontalEnd>>
<<script>>
window.setLighting(60);
<</script>>
<<disableSanityEvents>>
<<enableSanityEvents>>
<</if>>
<<dialogue "" "The hallway is narrow and damp, lined with metal doors on both sides. You light the way with your flashlight, its beam flickering across the cold walls. The air grows denser and heavier." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Grand Hall|Grand Hall2]]">>
<<addDialogue "" "[[Go to laboratory|LabCorridorA2]]">>
<<horizontalEnd>>
<<script>>
window.setLighting(80);
<</script>><<dialogue "" "The laboratory is hidden in the depths of the east wing of the hospital. The white tile walls are stained with splashes of substances you'd rather not identify. Several stainless steel tables are arranged throughout the room, covered with medical instruments: syringes, vials with murky liquids of strange colors." "description">>
<<if $LabCheck isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check the lab|LabCheck]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<if $CheckMachine is true>>
<<addDialogue "" "[[APDM-02 MNEMOSYNE|SerumMixer]]">>
<</if>>
<<addDialogue "" "[[Examine cabinet|Labcabinet]]">>
<<addDialogue "" "[[Examine preservation chamber|Labchamber]]">>
<<addDialogue "" "[[Examine tables|Labtables]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Corridor to Grand Hall|LabCorridorA2]]">>
<<addDialogue "" "[[Laboratory East|LabA2]]">>
<<horizontalEnd>>
<<script>>
window.setLighting(60);
<</script>>
<<dialogue "" "You walk down a long corridor, your flashlight casting shaky light along the floor. The walls, stained by time and neglect, flicker in and out of view as the beam moves. Each step forward is met with the soft creak of the floor beneath your feet, while shadows dance around you." "description">>
<<horizontalStart>>
<<if $LabDoorOpen isnot true>>
<<addDialogue "" "[[Check laboratory door|LabADoor]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<if $LabDoorOpen is true>>
<<addDialogue "" "[[Laboratory|LabA]]">>
<</if>>
<<addDialogue "" "[[Back to Grand Hall|LabCorridorA]]">>
<<horizontalEnd>>
<<script>>
window.setLighting(80);
<</script>>
<<disableSanityEvents>>
<<enableSanityEvents>><<dialogue "" "An empty corridor stretches like an endless throat. Exposed cables hang from the ceiling like throbbing veins. Moonlight illuminates the area through a broken window." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Laboratory|LabA2]]">>
<<addDialogue "" "[[Incubation room]]">>
<<horizontalEnd>><<dialogue "" "This path remains closed… for now. Perhaps in the future, new opportunities will unfold. Your support helps bring those moments closer. Thank you for being part of this story." "description">>
<<addDialoguePos "" "[[Back|LabCorridorA2]]" "center">><<dialogue "" "The air smells of rotten proteins and ammonia. The steel walls are covered with condensation that drips incessantly. In the center of the room, several cylindrical glass and metal incubators lie destroyed. There are empty capsules with their lids torn off and pools of contaminated fluid. At one end of the room, one incubator remains intact. Its surface is clean, and the lid is still closed, although it is empty inside." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check intact incubator|incubator]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Incorridor]]" "center">>
<<dialogue "" "Something is moving in the darkness, a man in a patient’s gown stepping out from the shadows attracted by the light of your flashlight." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|SRCfight2]]">>
<<horizontalEnd>>
<<set $srcsf = 1>>
<<set $EventE4 = 1>>
<<set $randomEnemy =random(2)>>
<<if $randomEnemy is 0>>
<<run startAdvancedBattle([
{
type: 'lobotomizedPatient',
hp: 80,
distance: 10,
randomDistance: true,
speed: "2-5",
minMovement: 2,
maxMovement: 5,
damage: 10,
DamageIgnore: {
'pistol': 0.2,
'rifle': 0.0,
'shotgun': 0.0,
'melee': 0.6,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.4,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', true)>>
<<elseif $randomEnemy is 1>>
<<run startAdvancedBattle([
{
type: 'madPatient',
hp: 70,
distance: 20,
randomDistance: true,
speed: "3-6",
minMovement: 3,
maxMovement: 6,
damage: 10,
DamageIgnore: {
'pistol': 0.5,
'rifle': 0.2,
'shotgun': 0.1,
'melee': 0.4,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.4,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', true)>>
<<elseif $randomEnemy is 2>>
<<run startAdvancedBattle([
{
type: 'locoPatient',
hp: 90,
distance: 20,
randomDistance: true,
speed: "3-6",
minMovement: 3,
maxMovement: 6,
damage: 8,
DamageIgnore: {
'pistol': 0.5,
'rifle': 0.2,
'shotgun': 0.1,
'melee': 0.4,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.4,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', true)>>
<</if>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<dialogue "" "Everything turns blurry. Liquid shadows slither across the walls, and reality flickers like a flame on the verge of dying out. And then, you see it. A figure emerges from the darkness. It doesn't walk, doesn't move like anything of this world. Its form is wrong—an impossible amalgamation of existence and denial. Something that shouldn't be here. Something that was never meant to be. An aberration." "description">>
<<addDialogue "Casey" "No! Damn it! Not now!" "talk">>
<<addDialogue "" "As the creature approaches, the pain in your head vanishes quickly. But the absence is not relief... it's worse. It's as if something far greater has taken its place, something that devours every sensation, every thought." "description">>
<<addDialogue "Casey" "This isn't real... it can't be real." "talk">>
<<addDialogue "" "Your body feels light, distant, as if it no longer belongs to you, while the aberration keeps closing in. Its very existence warps reality around it, as if the world itself is trying to reject it. Its mere presence is nauseating—an error in creation, something that should have never been." "description">>
<<addDialogue "Casey" "God... that's disgusting." "talk">>
<<addDialogue "" "I need to get out of here!" "thoughts">>
<<addDialogue "" "But you can't move. Your instincts scream, and in a reflex, you draw your weapon." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|monsterEvent1]]">>
<<horizontalEnd>>
<<set $aberrationfight1 = 1>>
<<set $Aberration01 = 1>>
<<run startAdvancedBattle([
{
type: 'shadowAnomaly',
hp: 900,
distance: 50,
randomDistance: true,
speed: "10",
minMovement: 10,
maxMovement: 10,
damage: 30,
DamageIgnore: {
'pistol': 1,
'rifle': 1,
'shotgun': 1,
'melee': 0.5,
'incendiary': 0.1,
'dragon_breath': 0.0,
'tracer': 1,
'9mm': 1,
'.45': 1,
'slugs': 1
}
},
], 'Event_Aberration01', false, 'Event_Aberration01', true)>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>>
<<timed 3s>>
<<dialogue "" "You fire, but the creature doesn't even flinch. Its blackened flesh writhes like a mass of liquid shadows, deforming and reconstructing with each step it takes toward you. You grit your teeth and pull the trigger again. And again." "description">>
<</timed>>
<<timed 7s>>
<<addDialogue "" "Nothing!" "thoughts">>
<<addDialogue "Casey" "What the hell?" "talk">>
<<addDialogue "" "The creature advances. Your flashlight flickers in your hand, as if the very light is afraid to illuminate what crawls before you. It has no face, just a pulsing void where a head should be. Its torso expands and contracts unnaturally, as if breathing in every direction at once. You take a step back. Another. Your back hits the wall." "description">>
<<addDialogue "Casey" "Shit!" "talk">>
<<addDialogue "" "The creature lunges at you. You try to move, but it's too fast. Its dark tentacle pierces your chest like a spear." "description">>
<<addDialogue "Casey" "Ah!" "talk">>
<<addDialogue "" "The pain is unbearable. It's as if an icy pressure takes hold of you from within, tearing you apart from the core of your being. The air escapes your lungs. You try to scream, but only manage a choked sound." "description">>
<<addDialogue "Casey" "No... no... no..." "talk">>
<<addDialogue "" "Your hands grasp at the air, searching for something to hold onto, but everything seems to collapse. You feel something crawl across your chest, but when you look, there's no hole. No blood. You stagger, incredulous, looking down, terrified. But your chest is intact. There's no wound. Only the pain." "description">>
<<addDialogue "Casey" "What... what is happening?" "talk">>
<<addDialogue "" "My voice! I can barely hear myself... I can't... hold on anymore!" "thoughts">>
<<addDialogue "" "You gasp, trying to keep control, but you can't. Your mind begins to give in. Your knees buckle, and you fall to the floor. The monster is no longer in front of you; it has disappeared completely, leaving no trace. Finally, your mind shuts down. The cold invades you completely, and you fall into the darkness." "description">>
<<horizontalStart>>
<<if $Fpartner is true>>
<<addDialogue "" "[[Continue|Event-Flashback1-Female]]">>
<<elseif $Mpartner is true>>
<<addDialogue "" "[[Continue|Event-Flashback1-Male]]">>
<<else>>
<<addDialogue "" "[[Continue|Event-Flashback1-Solo]]">>
<</if>>
<<horizontalEnd>>
<</timed>>
<<timed 3s>>
<<script>>
playSoundDirect('ab01.mp3');
<</script>>
<</timed>>
<<timed 7s>>
<<script>>
playSoundDirect('ab01.mp3');
<</script>>
<</timed>>
<<set $aberrationfight1 = 2>>
<<set $AberrationEvent = 2>>
<<set $brokeSister = true>>
<<script>>
window.HealthSanitySystem.addHealth(1)
<</script>>
<<dialogue "" "A warm sensation spreads through your body, slowly pulling you out of the darkness. The cold fades, replaced by the softness of sheets wrapping around you." "description">>
<<addDialogue "" "The faint scent of cologne and morning air lingers in the room. A golden, diffused light filters through the curtains, casting soft shadows on the walls. Your body feels heavy, but there is no pain. Your breathing is slow and steady. For a moment, everything is peaceful. You shift slightly, feeling the weight of an arm resting on your waist. The warmth of another body against your back sends a familiar sensation." "description">>
<<addDialogue "Casey" "Mmm..." "talk">>
<<addDialogue "" "The mattress dips slightly as the person beside you moves and whispers into your ear." "description">>
<<addDialogue "Violet" "Good morning. I'm going to take a shower." "talk">>
<<addDialogue "" "Their tone is low, heavy with sleep. Before getting up, they press a slow kiss against your shoulder. Then, the warmth of their body fades, though their fingers still trace lightly along your arm before pulling away completely." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Tell her to stay|Event-Flashback2-Female]]">>
<<horizontalEnd>>
<<script>>
window.CharacterMenuControl.show()
<</script>>
<<setAvatarDirect "nude.png">>
<<set $abominationEvent = "complete">>
<<set $IntroVision = true>>
<<timed 7s>>
<<showNPC "violet" "img/characters/violet/violet.png" "Violet">>
<</timed>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('newstart.mp3', 4000);
}, 1000);
<</script>>
<<script>>
window.HealthSanitySystem.addSanity(100)
window.HealthSanitySystem.addHealth(100)
<</script>>
<<unlockCharacterOnly 7>><<dialogue "" "A warm sensation spreads through your body, slowly pulling you out of the darkness. The cold fades, replaced by the softness of sheets wrapping around you. The faint scent of cologne and morning air lingers in the room. A golden, diffused light filters through the curtains, casting soft shadows on the walls." "description">>
<<addDialogue "" "Your body feels heavy, but there is no pain. Your breathing is slow and steady. For a moment, everything is peaceful. You shift slightly, feeling the weight of an arm resting on your waist. The warmth of another body against your back sends a familiar sensation." "description">>
<<addDialogue "Casey" "Mmm..." "talk">>
<<addDialogue "" "The mattress dips slightly as the person beside you moves and whispers into your ear." "description">>
<<addDialogue "Luke" "Good morning... I'm going to take a shower." "talk">>
<<addDialogue "" "Their tone is low, heavy with sleep. Before getting up, they press a slow kiss against your shoulder. Then, the warmth of their body fades, though their fingers still trace lightly along your arm before pulling away completely." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Tell him to stay|Event-Flashback2-Male]]">>
<<horizontalEnd>>
<<script>>
window.CharacterMenuControl.show()
<</script>>
<<setAvatarDirect "nude.png">>
<<set $abominationEvent = "complete">>
<<set $IntroVision = true>>
<<timed 7s>>
<<showNPC "luke" "img/characters/luke/luke.png" "Luke">>
<</timed>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('newstart.mp3', 4000);
}, 1000);
<</script>>
<<script>>
window.HealthSanitySystem.addSanity(100)
window.HealthSanitySystem.addHealth(100)
<</script>>
<<unlockCharacterOnly 6>><<dialogue "" "After the last blink. Your reflection stares back at you from the police station bathroom mirror. For a second, your eyes seem unfamiliar, as if you're looking at yourself through someone else's gaze. The cold water you splash on your face does little to shake the feeling." "description">>
<<addDialogue "Casey" "Must be the exhaustion... Ah..." "talk">>
<<addDialogue "" "I must to finish this soon..." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Back to the office|Event-Flashback2-Solo]]">>
<<horizontalEnd>>
<<set $abominationEvent = "complete">>
<<set $IntroVision = true>>
<<script>>
window.HealthSanitySystem.addSanity(60)
<</script>>
<<script>>
window.HealthSanitySystem.addHealth(100)
<</script>>
<<script>>
window.CharacterMenuControl.show()
<</script>>
<<setAvatarDirect "casey.png">>
<<script>>
setTimeout(() => {
audioSystemCrossfade('newstart.mp3', 4000);
}, 1000);
<</script>>
<<script>>
window.HealthSanitySystem.addSanity(50)
window.HealthSanitySystem.addHealth(100)
<</script>><<dialogue "" "You sigh and step out of the bathroom. The office looks the same as always—piles of documents, cold coffee on the desks, dim lights flickering over the worn-out carpet. Rodríguez is there, slumped in her chair, one hand covering her face. Exhausted." "description">>
<<horizontalStart>>
<<addDialogue "" "[[I'm back|Event-Flashback3-Solo]]">>
<<horizontalEnd>>
<<dialogue "Casey" "I'm back." "talk">>
<<addDialogue "Gabriela" "We should go get some rest." "talk">>
<<addDialogue "" "She doesn't believe in her own words." "thoughts">>
<<addDialogue "Casey" "I'm not leaving until we finish this." "talk">>
<<addDialogue "" "Rodríguez lets out a tired chuckle and stretches in her chair, making her stiff joints crack as she remains seated." "description">>
<<addDialogue "Gabriela" "Of course not." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Work|Event-Flashback4-Solo]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/rodriguez.png" "Gabriela Rodriguez">><<dialogue "" "The sound of keystrokes filled the office as you and Rodríguez scoured the FBI files. The screen casts a blue glow over your tired faces. Hours of searching, cold coffee, and eyes burning from fatigue, but finally…" "description">>
<<addDialogue "Gabriela" "Here it is… here it is!" "talk">>
<<addDialogue "" "Her voice is full of triumph. You move closer, somewhat incredulous, as she scrolls through the document on the screen." "description">>
<<addDialogue "Gabriela" "I think we've got it, Casey. Look: Jackeline Harrington, the aunt of Daniel R. Harrington. She lives with her daughter, Marianne L. Harrington. According to the file, they are located at Luminara Avenue, Apartment 24, Central District of the city, on the second floor, left side of the Monteverde Building. It also says here that Daniel became an orphan at a very young age, though it doesn't specify what happened." "talk">>
<<addDialogue "" "Rodríguez slides the cursor to highlight the information." "description">>
<<addDialogue "Casey" "Second floor, left side... apartment 4... How did this get into the files?" "talk">>
<<addDialogue "Gabriela" "Check this out, in Daniel's history, it says that when he was 13, he was involved in a pretty messed-up incident—he burned the neighbor's kitten. It’s all recorded in the system. He already showed signs of psychopathy at a young age." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[You're incredible!|Event-Flashback5-Solo]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/rodriguez.png" "Gabriela Rodriguez">>
<<dialogue "Casey" "You're incredible!" "talk">>
<<addDialogue "Gabriela" "I knew we'd pull it off, Casey!" "talk">>
<<addDialogue "" "Rodríguez slowly moves closer, and in a tender gesture, brushes his lips with yours. The surprise is reflected in your eyes, creating an awkward moment." "description">>
<<addVideo "media/gabi/kiss.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "Wow... She got too excited." "thoughts">>
<<addDialogue "" "Noticing your surprised expression, Gabriela quickly pulls away, her face flushed and her discomfort plain in her movements." "description">>
<<addDialogue "Gabriela" "I'm sorry... I... got carried away..." "talk">>
<<addDialogue "Casey" "Hey, it’s no big deal to show a little enthusiasm but... we still have to catch him..." "talk">>
<<addDialogue "Gabriela" "Yes... you're right..." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue with the case|Event-Flashback6-Solo]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/rodriguez.png" "Gabriela Rodriguez">>
<<unlockVideo 3 1>><<dialogue "Casey" "Now we know where Daniel's aunt is. He might be there, or maybe she knows something." "talk">>
<<addDialogue "Gabriela" "Exactly. Daniel's house is abandoned, so he’s probably moved in with her, or at least she might know where he is." "talk">>
<<addDialogue "" "Hmm... Why the hell couldn’t we find this information sooner?" "thoughts">>
<<addDialogue "Gabriela" "What are you thinking, Casey?" "talk">>
<<addDialogue "Casey" "I wonder why it’s been so hard to find this information... Information about his aunt should have been available, damn it! I just found out this bastard has a aunt..." "talk">>
<<addDialogue "Gabriela" "I don’t know... Sometimes, the pieces take time to fall into place." "talk">>
<<addDialogue "Casey" "I don’t buy it... Something’s off. This should have been resolved days ago. Why is everything so hidden?" "talk">>
<<addDialogue "Gabriela" "Sometimes, the information is where you least expect it. Not everything is as it seems on the surface." "talk">>
<<addDialogue "Casey" "No, Rodríguez. I’m telling you, something’s wrong. There’s something that doesn’t add up. It’s not just the case, it’s everything. I have this feeling that someone inside the police... is tampering with evidence... Not just in this case, but in others too." "talk">>
<<addDialogue "Gabriela" "Shh! Don’t raise your voice, alright? This is why everyone here hates you..." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[I’m not yelling|Event-Flashback7-Solo]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/rodriguez.png" "Gabriela Rodriguez">>
<<dialogue "Casey" "I’m not yelling, I’m just thinking out loud. And if that makes them hate me, let them hate me." "talk">>
<<addDialogue "Gabriela" "Casey, it’s not that simple. If what you're saying is true, it’s dangerous to talk here... If there really is someone inside the police tampering with evidence, this is much bigger than it seems." "talk">>
<<addDialogue "Casey" "It's terrifying... But we can't keep ignoring it, Rodríguez. We’ve already seen how they’ve blocked us multiple times. What if they’re covering up someone bigger, or something?" "talk">>
<<addDialogue "Gabriela" "I'm not saying I don't believe you, but we have to be smart. We can't go around swinging blindly. If we make such an accusation without evidence, they’ll crush us." "talk">>
<<addDialogue "Casey" "I know. But if we don’t start moving, we’ll never discover anything." "talk">>
<<addDialogue "Gabriela" "And what do you suggest?" "talk">>
<<addDialogue "" "The silence fills the room for a long moment. Rodríguez finally shrugs and gestures with her hands in a subtle, soft motion." "description">>
<<addDialogue "Casey" "We keep working on the case, of course. But after that, we need to do something, maybe talk to Captain Havook." "talk">>
<<addDialogue "Gabriela" "Yeah, after this case. But for now, let’s focus on finding Daniel’s aunt. We can’t let him slip away." "talk">>
<<addDialogue "Casey" "Exactly. First, we need to finish this. Let’s pay a visit to that address, Luminara Avenuea #23. Maybe we’ll find something else there, and if we're lucky, we’ll finally know where Daniel is." "talk">>
<<addDialogue "Gabriela" "Let’s go then. We can’t waste any more time. If he’s with his aunt, we need to find him before he disappears again." "talk">>
<<addDialogue "" "Both of you stand up, gathering your things with determination. As you head towards the door, the suspicion about corruption within the police continues to linger in your mind, while the fatigue begins to take its toll." "description">>
<<addDialogue "" "Damn it, I’m sure! I’m sure there’s someone here! Someone who’s been playing me. Since they killed my family and kidnapped my sister, someone has been playing with me... I swear on everything I have left, I’ll find them. I’ll find my sister. I’ll kill them all if necessary." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Go to the car|Event-Flashback8-Solo]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/rodriguez.png" "Gabriela Rodriguez">><<dialogue "" "Both of you arrive quickly at the parking lot. The night is young, and the lights from the signs in front of the police station flicker slightly. You walk straight toward the driver’s seat, but Gabriela stops you with a hand on your arm." "description">>
<<addDialogue "Gabriela" "Casey, give me the keys." "talk">>
<<addDialogue "Casey" "What? No, I’m fine." "talk">>
<<addDialogue "Gabriela" "No, you're not. Your eyes are closing. Come on, it's just a short drive." "talk">>
<<addDialogue "Casey" "That's exactly why. It's short. I'm not going to fall asleep in ten minutes." "talk">>
<<addDialogue "Gabriela" "Oh, right, because you're one of those new robots—never gets tired." "talk">>
<<addDialogue "Casey" "You got it." "talk">>
<<addDialogue "Gabriela" "Casey... how long has it been since you actually slept well?" "talk">>
<<addDialogue "" "I... don't know. Two days, maybe three..." "thoughts">>
<<addDialogue "Casey" "I got some sleep last night." "talk">>
<<addDialogue "Gabriela" "And how much is "some" for you?" "talk">>
<<addDialogue "" "Your response is so quiet that Rodríguez barely hears it." "description">>
<<addDialogue "Casey" "About 3 hours, more or less..." "talk">>
<<addDialogue "Gabriela" "What? You can't keep going like this! At least close your eyes for a bit—Jesus, Casey...!" "talk">>
<<addDialogue "" "You run a hand over your face, feeling the burning in your eyelids. Until now, you had ignored the exhaustion, but Rodríguez's words seem to pull it out from where you had buried it, reminding you just how heavy it is. Gabriela lets out a sharp sigh, clenching her fists tightly. Her patience has completely evaporated, and concern turns into frustration." "description">>
<<addDialogue "Gabriela" "You know what? No. I’m not going to argue about this. You’re not in condition, Casey. No way." "talk">>
<<addDialogue "Casey" "Don’t exaggerate Gabi..." "talk">>
<<addDialogue "" "Gabriela immediately extends her hand, palm open, demanding the keys." "description">>
<<addDialogue "Gabriela" "Give them to me. Now." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Give her the keys|Event-Flashback9-Solo]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/rodriguez.png" "Gabriela Rodriguez">><<dialogue "" "You bite your lips until they almost bleed, feeling your pride twist in your chest. But knowing that Rodríguez is right, you relent. With a heavy sigh, you take the keys out and hand them to her." "description">>
<<addDialogue "Casey" "Just ten minutes." "talk">>
<<addDialogue "Gabriela" "Whatever the drive takes." "talk">>
<<addDialogue "" "She pauses, looking at you straight in the face, her expression rigid." "description">>
<<addDialogue "" "She is clearly angry..." "thoughts">>
<<addDialogue "Gabriela" "This has to be the last time. Do you hear me? The last time we finish a case like this! I’m done! You always end up a wreck, always! How am I supposed to trust you to cover my back in that state? No way!" "talk">>
<<addDialogue "" "Her words hit you like a hammer. Your eyes widen for a few seconds as you listen to your partner’s words. The pain of the truth cuts deep, and you know she couldn’t be more right." "description">>
<<addDialogue "Gabriela" "I can’t keep working like this with you, Casey. You’re a great detective and... my best friend... but if you keep going like this, you’re dragging down, and me with you." "talk">>
<<addDialogue "" "The anger mixes with discomfort, but you can't deny it. Gabriela's words cut through you, but you have no response." "description">>
<<addDialogue "" "God, Gabi, I..." "thoughts">>
<<addDialogue "Casey" "I'm sorry..." "talk">>
<<addDialogue "Gabriela" "Just make sure you really rest next time, okay?" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Everything will be fine|Event-Flashback10-Solo]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/rodriguez.png" "Gabriela Rodriguez">>
<<dialogue "Casey" "Everything will be fine. But next time... next time I'll rest." "talk">>
<<addDialogue "" "Gabriela doesn't respond immediately. Her expression softens, but her eyes are still full of concern. She takes a step back, giving you a moment to process everything she just said. The air between you two feels thick, as if you both can sense the weight of the truth hanging in the space. Those moments of silence, though uncomfortable, seem inevitable." "description">>
<<addDialogue "Gabriela" "You never talk about it, you know?" "talk">>
<<addDialogue "Casey" "What?" "talk">>
<<addDialogue "Gabriela" "Your family... your parents. Your sister." "talk">>
<<addDialogue "" "Her voice is soft, but the question falls heavy between the two of you. As if, by mentioning it, a space you’ve kept closed briefly opens." "description">>
<<addDialogue "Casey" "You know what happened..." "talk">>
<<addDialogue "Gabriela" "Casey, I mean..." "talk">>
<<addDialogue "" "She looks at you with a mixture of concern and understanding. It’s as if she wants to say more, but doesn’t know how, as if the anguish in your words isn’t only yours, but hers too." "description">>
<<addDialogue "Casey" "I know, Gabi. I know." "talk">>
<<addDialogue "" "Her eyes don’t leave you. Those uncomfortable silences fill the air again. Gabriela seems to be waiting for you to speak, for you to take the next step." "description">>
<<addDialogue "Gabriela" "If you ever need to talk about them... you know I’m here, right?" "talk">>
<<addDialogue "Casey" "I know... I’m just not ready yet." "talk">>
<<addDialogue "Gabriela" "It’s okay. Let’s get moving." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Get in the car|Event-Flashback11-Solo]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/rodriguez.png" "Gabriela Rodriguez">>
<<dialogue "" "Gabriela starts the car with a heavy sigh, her hands firmly gripping the steering wheel. The engine hums softly, and the sound of city traffic mixes with the dense silence between you both. Gabriela keeps her eyes on the road, her expression still tense, though a little calmer after what had just happened." "description">>
<<addDialogue "" "You lean back in the seat, feeling exhaustion overtake you completely. Though you know you shouldn’t fall asleep, your eyelids no longer respond. The hum of the engine, the soft vibration of the wheels on the asphalt, is almost hypnotic. Gabriela glances at you quickly, noticing how your eyes seem to close completely, the weight of fatigue finally taking control of your body." "description">>
<<addDialogue "Gabriela" "Just ten minutes, huh?" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Sleep|Event-FlashbackEnd-Solo]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/rodriguez.png" "Gabriela Rodriguez">><<dialogue "" "Finally, you can’t keep your eyes open any longer. The exhaustion weighs on you so heavily that, despite the persistent feeling that you should stay alert, your body betrays you. You lean back in the seat, surrendering to the comfort you feel. For a moment, it feels like peace, a brief respite from the storm of thoughts and the tension that overwhelms you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Wake up|Event-FlashbackEnd2-Solo]]">>
<<horizontalEnd>>
<<dialogue "" "A sharp sensation pulls you out of sleep. It’s not a gentle awakening, but a jolt, a harsh return to reality. You open your eyes, but nothing feels familiar. The air is cold, damp, stale." "description">>
<<addDialogue "" "The smell of mold and decay fills your nostrils. You slowly rise, feeling how your body is stiff, as if you've been here much longer than you remember. Looking around, everything is dark, except for the faint light of the moon filtering through broken windows. The silence is complete, heavy." "description">>
<<addDialogue "" "The sense of disorientation consumes you as you stand, the cold, dusty floor beneath your feet. There’s no sign of the aberration that attacked you before." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Get up|Event-FlashbackEnd3-Solo]]">>
<<horizontalEnd>>
<<dialogue "" "The cold of the floor is the first thing you perceive upon waking. The rough, dusty stone presses against your skin as you clumsily push yourself up. The dense, humid air barely stirs, and a rancid stench clings to the atmosphere, invading your senses. Shadows stretch around you, cast by the pale moonlight filtering through the broken windows. The room is completely silent, an unsettling void that offers no clues about what happened before." "description">>
<<addDialogue "" "Where…?" "thoughts">>
<<addDialogue "Casey" "Shit. How long was I out?" "talk">>
<<addDialogue "" "Your fingers slowly trail to your chest, searching for the damage caused by the tentacle. No wounds. No blood." "description">>
<<addDialogue "" " This isn’t possible. And the dream..." "thoughts">>
<<addDialogue "Casey" "Shit… this dream..." "talk">>
<<addDialogue "" "You exhale sharply, pressing your hand to your temple. The past pulls at you like an unstoppable current, each memory unraveling the present." "description">>
<<addDialogue "" "It was my last case with Gabi. She was right… it didn’t end well." "thoughts">>
<<addDialogue "" "The darkness around you surrounds you, the humidity seeps into your bones, and the echo of the past continues to resonate in your mind. You feel as if you are trapped, lost between two worlds. But the present is what matters most." "description">>
<<addDialogue "" "That thing… whatever it was… attacked me, and then… maybe it was a hallucination or… Shit, I need to focus." "thoughts">>
<<addDialogue "" "You close your eyes for a moment, trying to gather strength, trying not to think about the creature." "description">>
<<addDialogue "Casey" "This can't stop me. I have to keep going." "talk">>
<<addDialogue "" "You pull away from the wall, and although your body still feels heavy, you force yourself to stand firm. Each movement is a reminder that you're still alive." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Grand Hall]]">>
<<horizontalEnd>>
<<script>>
stopAllMusic();
<</script>>
<<if $CaseyJacket is true>>
<<setAvatarDirect "caseyjacket.png">>
<</if>>
<<if $CaseyCoat is true>>
<<setAvatarDirect "caseycoat.png">>
<</if>>
<<script>>
UIAnimations.showLantern();
<</script>>
<<script>>
window.HealthSanitySystem.addSanity(100)
<</script>><<dialogue "" "You turn over in bed, reaching out with a lazy hand, brushing your fingers against their skin." "description">>
<<addDialogue "Casey" "Stay a little longer…" "talk">>
<<addDialogue "" "You hear their soft laugh before their fingers gently caress your cheek." "description">>
<<addDialogue "Luke" "It’s already late, I have to leave soon..." "talk">>
<<addDialogue "" "You let out a sigh, clinging a little longer to their warmth, but they’re already pulling away. The mattress dips slightly as they sit at the edge of the bed." "description">>
<<addDialogue "Luke" "But if you want… you can join me in the shower." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Close your eyes for a few more minutes|Event-Flashback2b-Male]]">>
<<addDialogue "" "[[Go to the shower|Event-shower-Male]]">>
<<horizontalEnd>>
<<showNPC "luke" "img/characters/luke/luke.png" "Luke">>
<<dialogue "" "Before she can continue to the bathroom, you stand up and gently grasp her wrist. Violet turns, surprised, but there’s a mischievous spark in her eyes." "description">>
<<addDialogue "Violet" "Casey... I'm in a hurry. I must to..." "talk">>
<<addDialogue "" "You pull her closer without a word. She lets out a soft laugh, but it fades the moment your lips meet hers. The kiss starts slow, unhurried, but as your hands trace over her bare skin, the air between you shifts." "description">>
<<addDialogue "" "Violet sighs against your mouth, her fingers tightening around your waist as she guides you toward the couch. You fall together onto the cushions, skin against skin, breathless. Her body moves against yours, each touch stoking the heat between you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Event-sofa-Female1]]">>
<<horizontalEnd>>
<<showNPC "violet" "img/characters/violet/violet.png" "Violet">>
<<dialogue "" "Violet stands kneels, starting to touch you." "description">>
<<addVideo "media/violet/startplay.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "She wraps her mouth around your pussy. Her warmth and softness make you shudder as she continues exploring you eagerly, savoring every reaction of yours." "description">>
<<addVideo "media/violet/startplay2.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Eat her pussy|Event-sofa-Female2]]">>
<<addDialogue "" "[[Let her lick you more|Event-sofa-Female3]]">>
<<horizontalEnd>>
<<showNPC "violet" "img/characters/violet/violet.png" "Violet">>
<<unlockVideo 7 1>>
<<unlockVideo 7 2>> <<dialogue "" "You turn over in bed, reaching out with a lazy hand, brushing your fingers against their skin." "description">>
<<addDialogue "Casey" "Stay a little longer..." "talk">>
<<addDialogue "" "You hear their soft laugh before their fingers gently caress your cheek." "description">>
<<addDialogue "Violet" "It's already late, I have to leave soon..." "talk">>
<<addDialogue "" "You let out a sigh, clinging a little longer to their warmth, but they're already pulling away. The mattress dips slightly as they sit at the edge of the bed. She stretches, running a hand through her hair before standing up. Her steps are slow, unhurried, as she makes her way toward the bathroom." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Stop her|Event-sofa-Female]]">>
<<horizontalEnd>>
<<showNPC "violet" "img/characters/violet/violet.png" "Violet">><<dialogue "" "You lean between her legs, feeling her breath quicken as your tongue glides over her skin. Every movement of yours makes her tremble, surrendering to pleasure. Without hesitation, you bury your face between her thighs, devouring her with hunger, as if she were the most delicious feast you've ever tasted." "description">>
<<addVideo "media/violet/eatpussy.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Let her lick you more|Event-sofa-Female3]]">>
<<addDialogue "" "[[Eat more pussy|Event-sofa-Female4]]">>
<<horizontalEnd>>
<<showNPC "violet" "img/characters/violet/violet.png" "Violet">>
<<unlockVideo 7 3>> <<dialogue "" "You shudder, biting your lip as Violet continues licking with dedication. Your fingers grip her hair, guiding her gently." "description">>
<<addDialogue "Casey" "Don’t stop..." "talk">>
<<addDialogue "" "She smiles against your skin before deepening her rhythm, savoring every sound she draws from you." "description">>
<<addVideo "media/violet/lickpussy.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Lick her pussy|Event-sofa-Female2]]">>
<<addDialogue "" "[[Scissors|Event-sofa-Female5]]">>
<<horizontalEnd>>
<<showNPC "violet" "img/characters/violet/violet.png" "Violet">>
<<unlockVideo 7 4>> <<dialogue "" "Violet is on all fours on the couch, her back arched and her skin tingling under your hands. You grip her thighs and bury your head between her legs, devouring her with more intensity, making her moan in pleasure." "description">>
<<addVideo "media/violet/eatpussy2.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Scissors|Event-sofa-Female5]]">>
<<horizontalEnd>>
<<showNPC "violet" "img/characters/violet/violet.png" "Violet">>
<<unlockVideo 7 5>>
<<dialogue "" "Violet settles on top of you, starting slowly, but soon her hips move with a desperate rhythm, seeking more friction between you both." "description">>
<<addVideo "media/violet/scissors.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "The warmth of her skin blends with yours, the electric friction making each moan grow louder." "description">>
<<addVideo "media/violet/scissors2.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[End|Event-sofa-Female6]]">>
<<horizontalEnd>>
<<showNPC "violet" "img/characters/violet/violet.png" "Violet">>
<<unlockVideo 7 6>>
<<unlockVideo 7 7>> <<dialogue "" "Exhausted, both of you collapse onto the sofa. Violet sits up with a carefree air, her breath still rapid and a rebellious spark in her eyes." "description">>
<<addDialogue "Violet" "I'm going to be late to see my parole officer because of you..." "talk">>
<<addDialogue "" "Her tone is mocking, as if she really doesn’t care." "description">>
<<addDialogue "Casey" "Don’t worry, if he gives you trouble, I’ll pay him a visit to knock him down a peg." "talk">>
<<addDialogue "" "Violet lets out a defiant laugh, a mix of teasing and fun, as she gets dressed in a slightly messy but effortlessly stylish way." "description">>
<<addDialogue "Violet" "Don’t worry about me, detective; your chaos always shakes up my routine. " "talk">>
<<addDialogue "" "With those words, she rushes out. You’re left alone on the sofa, savoring the calm that contrasts with her energetic presence, as you slowly make your way to the bed, ready to enjoy your day off without any rush." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go to the bed|Event-sofa-FemaleEnd]]">>
<<horizontalEnd>>
<<showNPC "violet" "img/characters/violet/violet.png" "Violet">><<dialogue "" "The sun filters through the curtains, gently illuminating the room. It’s your day off—no rush, no cases to solve… at least for now. You curl up in the sheets, enjoying the lingering warmth on your skin and the peaceful morning." "description">>
<<addDialogue "Casey" "Mmm… well, that was fun" "talk">>
<<addDialogue "" "Just as sleep begins to pull you back under, the insistent buzzing of your phone breaks the silence. You frown and reach for it: Captain Havook." "description">>
<<addDialogue "Casey" "Not now… " "talk">>
<<addDialogue "" "You bury yourself a little deeper into the pillow. Closing your eyes again" "description">>
<<addDialogue "Casey" "Definitely better than any coffee…" "talk">>
<<addDialogue "" "He’d call again later..." "thoughts">>
<<addDialogue "" "You stretch lazily, feeling the pleasant heaviness in your body, a satisfied smile playing on your lips." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Sleep|Event-End]]">>
<<horizontalEnd>>
<<dialogue "" "The cold of the floor is the first thing you feel upon waking. The contact with the cold tiles makes you shiver as you try to push yourself up, the pain in your body is immediate, though it's nothing serious. The air is dense, humid, and somewhat stale, as if the place is holding onto unpleasant memories." "description">>
<<addDialogue "" "Long shadows stretch around you, shaped by the dim moonlight filtering through the broken windows. The room is completely silent, an unsettling stillness that leaves no clues about what happened before." "description">>
<<addDialogue "Casey" "What... what happened here?" "talk">>
<<addDialogue "" "You try to stand, but your legs wobble, forcing you to lean against the nearest wall. Your fingers touch your skin, trailing over your chest, searching for any marks or wounds, but there’s nothing. No trace." "description">>
<<addDialogue "" "Shit... that dream... it felt so real." "thoughts">>
<<addDialogue "" "You sigh deeply, your hand instinctively resting on your crotch as the memories of that night begin to flood your thoughts." "description">>
<<if $Fpartner is true>>
<<addDialogue "" "It was the last time with her... when we were still together, it ended badly. It was the day the captain called me, to inform me of what happened to... to my family." "thoughts">>
<<else>>
<<addDialogue "" "It was the last time with him... when we were still together, it ended badly. It was the day the captain called me, to inform me of what happened to... to my family." "thoughts">>
<</if>>
<<addDialogue "" "You stand there, your mind overwhelmed with questions." "description">>
<<addDialogue "Casey" "What was that thing that attacked me? Was it even real?" "talk">>
<<addDialogue "" "You shake your head, pushing the confusing thoughts aside." "description">>
<<addDialogue "Casey" "Shit, I'm losing my grip!" "talk">>
<<addDialogue "" "I have to keep going and find that damn doctor." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Contiue|Grand Hall]]">>
<<horizontalEnd>>
<<if $CaseyJacket is true>>
<<setAvatarDirect "caseyjacket.png">>
<</if>>
<<if $CaseyCoat is true>>
<<setAvatarDirect "caseycoat.png">>
<</if>>
<<script>>
stopAllMusic();
<</script>>
<<script>>
UIAnimations.showLantern();
<</script>>
<<dialogue "" "You close your eyes and surrender completely to the warmth of the bed. The soft fragrance of the sheets and the distant echo of water falling in the shower surround you." "description">>
<<addDialogue "" "Just a few more minutes..." "thoughts">>
<<addDialogue "" "Your body relaxes again. Slow breathing and the steady rhythm of your heartbeat pull you back into that in-between state of sleep and wakefulness, where time feels hazy, floating in a comforting peace." "description">>
<<addDialogue "" "But eventually, reality calls you back. A shiver runs across your skin as the warmth trapped in the sheets begins to fade. You shift lazily, rolling onto your side before slowly opening your eyes. The golden light filtering through the curtains bathes the room in a soft glow. Everything remains calm. You stretch slowly, letting out a quiet sigh as your mind fully awakens. The sound of running water still echoes from the shower." "description">>
<<addDialogue "" "He's still there." "thoughts">>
<<addDialogue "" "For a moment, you simply stay in bed, listening to the murmur of the water and the tranquility of the space, savoring these last few seconds of stillness before getting up." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go to the shower|Event-showerb-Male]]">>
<<horizontalEnd>>
<<dialogue "" "You approach Luke before he can walk away and gently grab his wrist. He smiles, understanding your intent, and lets you lead him toward the bathroom." "description">>
<<addDialogue "Luke" "Oh? Didn’t you want five more minutes of sleep?" "talk">>
<<addDialogue "Casey" "I changed my mind." "talk">>
<<addDialogue "" "Your lips meet in a deep, hungry kiss. His hands roam your skin, pulling you against him as desire takes over. With nothing to stop you, the heat between you ignites, consuming you both completely." "description">>
<<addVideo "media/luke/kiss.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Let him penetrate you|Event-shower-Male2]]">>
<<horizontalEnd>>
<<showNPC "luke" "img/characters/luke/luke.png" "Luke">>
<<unlockVideo 6 1>> <<dialogue "" "The sound of water falling on the tiles guides you to him. Without thinking twice, you slide the shower door open and step inside, letting the warmth of the steam wrap around your skin. Luck turns, surprised to see you there. A smirk crosses his face before his hands slowly slide down to your waist, pulling you closer." "description">>
<<addDialogue "" "You step in, pressing your chest against his wet torso, feeling the steady beat of his heart against yours. He lets out a soft chuckle and runs his fingers down your back, tracing over your damp skin." "description">>
<<addVideo "media/luke/kiss.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "Luke" "I thought you weren’t coming..." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Let him penetrate you|Event-shower-Male2]]">>
<<horizontalEnd>>
<<showNPC "luke" "img/characters/luke/luke.png" "Luke">>
<<unlockVideo 6 1>> <<dialogue "" "Luke holds you firmly as he guides you with ease, sinking into you in one slow, deliberate motion. A soft sigh escapes your lips as the heat of his body merges with yours. He moves gently at first, his hands exploring your skin, savoring every reaction you give him." "description">>
<<addVideo "media/luke/penetration.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[More|Event-shower-Male3]]">>
<<horizontalEnd>>
<<showNPC "luke" "img/characters/luke/luke.png" "Luke">>
<<unlockVideo 6 2>> <<dialogue "" "The rhythm grows more intense. His hands grip your waist, setting a relentless pace. The sound of his ragged breaths mixes with yours as pleasure builds uncontrollably, igniting every nerve with each deep, fast thrust." "description">>
<<addVideo "media/luke/penetration2.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Make him cum|Event-shower-Male4]]">>
<<horizontalEnd>>
<<showNPC "luke" "img/characters/luke/luke.png" "Luke">>
<<unlockVideo 6 3>> <<dialogue "" "Straddling him, you feel his body tense beneath you as you cling to his shoulders, surrendering to the intensity of the moment. Luke grits his teeth, his grip tightening. A deep groan escapes him before he finally gives in, both of you tumbling into a wave of pure ecstasy." "description">>
<<addVideo "media/luke/ride.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[End|Event-shower-Male5]]">>
<<horizontalEnd>>
<<showNPC "luke" "img/characters/luke/luke.png" "Luke">>
<<unlockVideo 6 4>> <<dialogue "" "As Luke cleans himself and steps out of the shower to get dressed, you remain under the hot water, feeling the stream flow over your skin, also washing away the remnants of his presence from within you. From the bathroom, you watch his clothes slide over his body." "description">>
<<addDialogue "Luke" "I'm going to be late because of you..." "talk">>
<<addDialogue "Casey" "It's not that big of a deal. It's just a few minutes. Besides, you're not going to complain after the sex, are you?" "talk">>
<<addDialogue "" "Luke lets out a frustrated sigh, runs a hand through his hair, and stands up quickly, moving swiftly to finish getting dressed. His movements are hurried, but he pauses for a moment to look at you with a mischievous smile. He puts on his jacket before approaching the door. He stops for a moment and gives you one last quick glance." "description">>
<<addDialogue "Luke" "You can stay as long as you want, $McName." "talk">>
<<addDialogue "Casey" "Don't worry, Luke. I'm in no rush. I'll see you later." "talk">>
<<addDialogue "Luke" "I'd like that. I'll see you later..." "talk">>
<<addDialogue "" "Luke leaves the room. The door clicks softly as it closes behind him. You sigh, letting the silence settle for a moment. You turn off the shower, step out, and wrap yourself in a towel, slowly making your way back to the bed." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go to bed|Event-shower-Male6]]">>
<<horizontalEnd>>
<<showNPC "luke" "img/characters/luke/luke.png" "Luke">>
<<dialogue "" "The air is still heavy with his presence, and the bed feels emptier without him. You slide back into the sheets, savoring the residual warmth from the shower, as sleep begins to envelop you once again." "description">>
<<addDialogue "Casey" "Mmm… well, that was fun." "talk">>
<<addDialogue "" "Just as sleep begins to pull you back under, the insistent buzzing of your phone breaks the silence. You frown and reach for it: Captain Havook." "description">>
<<addDialogue "Casey" "Not now! It's my day off..." "talk">>
<<addDialogue "" "You bury yourself a little deeper into the pillow. Closing your eyes again." "description">>
<<addDialogue "Casey" "Definitely better than any coffee…" "talk">>
<<addDialogue "" "He’d call again later..." "thoughts">>
<<addDialogue "" "You stretch lazily, feeling the pleasant heaviness in your body, a satisfied smile playing on your lips." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Sleep|Event-End]]">>
<<horizontalEnd>>
<<dialogue "" "With a shove, the patient knocks you to the ground. You barely manage to roll when the deranged man, his eyes hollow and lifeless, grabs your leg. With unsettling strength, he drags you down the dark hallway. You struggle to break free, but your limbs feel heavy. Your fingernails scrape against the floor in a desperate attempt to hold onto something. Terror and the lack of air blur your vision. You feel a sharp blow to the head against the floor… and everything fades to black." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Coninue|E1b]]">>
<<addDialogue "" "<a tabindex="0" role="button" id="save-button">Load Game</a>">>
<<horizontalEnd>>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<script>>
window.HealthSanitySystem.addHealth(50)
<</script>>
<<set $bwfight = 2>>
<<set $bwfight2 = 2>>
<<set $bwinfight = true>>
<<set $bwinfight2 = true>>
<<set $EventE1 = 0>>
<<include "Change_MenuIMG">><<dialogue "" "You fall to the floor, the patient grabs your leg. With unsettling strength, he drags you down the dark hallway. You struggle to break free, but your limbs feel heavy. Your fingernails scrape against the floor in a desperate attempt to hold onto something. You feel a sharp blow to the head against the floor… and everything fades to black." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|E3b]]">>
<<addDialogue "" "<a tabindex="0" role="button" id="save-button">Load Game</a>">>
<<horizontalEnd>>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<script>>
window.HealthSanitySystem.addHealth(50)
<</script>>
<<set $srcsf = 2>>
<<set $EventE3 = 1>>
<<include "Change_MenuIMG">><<dialogue "" "With a shove, the patient knocks you to the ground. You barely manage to roll when the deranged man, his eyes hollow and lifeless, grabs your leg. With unsettling strength, he drags you down the dark hallway. You struggle to break free, but your limbs feel heavy. Your fingernails scrape against the floor in a desperate attempt to hold onto something. Terror and the lack of air blur your vision. You feel a sharp blow to the head against the floor… and everything fades to black." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Coninue|E1b]]">>
<<addDialogue "" "<a tabindex="0" role="button" id="save-button">Load Game</a>">>
<<horizontalEnd>>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<script>>
window.HealthSanitySystem.addHealth(50)
<</script>>
<<set $bwfight2 = 2>>
<<set $bwinfight = true>>
<<set $bwinfight2 = true>>
<<set $EventE2 = 0>>
<<include "Change_MenuIMG">><<dialogue "" "You fall to the floor, the patient grabs your leg. With unsettling strength, he drags you down the dark hallway. You struggle to break free, but your limbs feel heavy. Your fingernails scrape against the floor in a desperate attempt to hold onto something. You feel a sharp blow to the head against the floor… and everything fades to black." "description">>
<<addDialogue "Patient" "It’s over… you’re mine…" "talk">>
<<addDialogue "" "He pulls down his pants." "description">>
<<addDialogue "" "[[Continue|E4b]]">>
<<addDialogue "" "<a tabindex="0" role="button" id="save-button">Load Game</a>">>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<script>>
window.HealthSanitySystem.addHealth(50)
<</script>>
<<set $srcff = 2>>
<<set $EventE4 = 1>>
<<include "Change_MenuIMG">><<dialogue "" "A damp, metallic smell invades your nostrils as you open your eyes. The faint light flickers above your head, casting distorted shadows on the cracked walls. Your wrists, ankles, and chest burn under the pressure of cracked leather straps that bind you to a rusty, grimy bedframe. A chill runs down your bare skin." "description">>
<<addVideo "media/casey/escape.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Escape|escape]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<<set $Corruption += 1>>
<<set $CaseyRape += 1>>
<<if $CaseyRape gte 10>>
<<goto "RapeSuck">>
<</if>>
<<setAvatarDirect "nude.png">>
<<if $escapeVideo isnot true>>
<<unlockVideo 1 5>>
<<set $escapeVideo = true>>
<</if>><<dialogue "" "A damp, metallic smell invades your nostrils as you open your eyes. The faint light flickers above your head, casting distorted shadows on the cracked walls. Your wrists, ankles, and chest burn under the pressure of cracked leather straps that bind you to a rusty, grimy bedframe. A chill runs down your bare skin." "description">>
<<addVideo "media/casey/escape.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Escape|escape]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<<set $Corruption += 1>>
<<set $CaseyRape += 1>>
<<if $CaseyRape gte 10>>
<<goto "RapeSuck">>
<</if>>
<<if $CaseyRape gte 10>>
<<goto "RapeSuck">>
<</if>>
<<setAvatarDirect "nude.png">>
<<if $escapeVideo isnot true>>
<<unlockVideo 1 5>>
<<set $escapeVideo = true>>
<</if>><<dialogue "" "You’re lying down. Your vision blurs. From above, he falls on you like a beast. You writhe, but you have no strength. Your arms tremble. He sniffs you. He licks you. He grins with an inhuman grimace." "description">>
<<addDialogue "Patient" "Mine… only mine… my treasure." "talk">>
<<addDialogue "" "His fingers slide inside you without resistance, slightly parting your lower lips while his member relentlessly punishes your anus. And you can do nothing but scream." "description">>
<<addVideo "media/casey/castigoanal.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "His fingers slide inside you without resistance, slightly parting your lower lips while his member relentlessly punishes your anus. And you can do nothing but scream." "description">>
<<addVideo "media/casey/castigoanal2.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "The man, breathing heavily with a twisted look of satisfaction, slowly steps back. Without saying a word, he pulls his clothes back on and leaves, the door creaking shut behind him." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Escape|escape3]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<<set $Corruption += 2>>
<<set $CaseyRape += 1>>
<<if $CaseyRape gte 10>>
<<goto "RapeSuck">>
<</if>>
<<setAvatarDirect "nude.png">>
<<if $escapeVideo isnot true>>
<<unlockVideo 1 6>>
<<unlockVideo 1 7>>
<<set $escapeVideo = true>>
<</if>><<dialogue "" "You’re lying down. Your vision blurs. From above, he falls on you like a beast. You writhe, but you have no strength. Your arms tremble. He sniffs you. He licks you. He grins with an inhuman grimace." "description">>
<<addDialogue "Patient" "Mine… only mine… my treasure." "talk">>
<<addDialogue "" "His fingers slide inside you without resistance, slightly parting your lower lips while his member relentlessly punishes your anus. And you can do nothing but scream." "description">>
<<addVideo "media/casey/castigoanal.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "His fingers slide inside you without resistance, slightly parting your lower lips while his member relentlessly punishes your anus. And you can do nothing but scream." "description">>
<<addVideo "media/casey/castigoanal2.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "The man, breathing heavily with a twisted look of satisfaction, slowly steps back. Without saying a word, he pulls his clothes back on and leaves, the door creaking shut behind him." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Escape|escape3]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<<set $Corruption += 2>>
<<set $CaseyRape += 1>>
<<if $CaseyRape gte 10>>
<<goto "RapeSuck">>
<</if>>
<<setAvatarDirect "nude.png">>
<<if $escapeVideo isnot true>>
<<unlockVideo 1 6>>
<<unlockVideo 1 7>>
<<set $escapeVideo = true>>
<</if>><<dialogue "" " The lobotomized patient crawls toward you, panting. His pants are down. His body is a mass of scars and sick lust. He no longer masturbates. Now he’s looking at you. He doesn’t speak. He just lunges. You try to raise your arm, but you can’t. Your muscles don’t respond. He pins you to the ground. His nails tear into your exposed flesh." "description">>
<<addDialogue "" "He doesn’t scream. He just breathes… heavily, animalistic, like an aroused predator. And then you feel it. The… penetration. An invasion. Your body doesn’t react, but your soul writhes." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|E5b]]">>
<<addDialogue "" "<a tabindex="0" role="button" id="save-button">Load Game</a>">>
<<horizontalEnd>>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<script>>
window.HealthSanitySystem.addHealth(50)
<</script>>
<<set $Sroom2 = 2>>
<<set $fapperisgone = true>>
<<set $EventE5 = 1>>
<<include "Change_MenuIMG">><<dialogue "" "You’re lying down. Your vision blurs. From above, he falls on you like a beast. You writhe, but you have no strength. Your arms tremble. He sniffs you. He licks you. He grins with an inhuman grimace." "description">>
<<addDialogue "Patient" "Mine… only mine… my treasure." "talk">>
<<addVideo "media/casey/castigoanal.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "His fingers slide inside you without resistance, slightly parting your lower lips while his member relentlessly punishes your anus. And you can do nothing but scream." "description">>
<<addVideo "media/casey/castigoanal2.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "The man, breathing heavily with a twisted look of satisfaction, slowly steps back. Without saying a word, he pulls his clothes back on and leaves, the door creaking shut behind him." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Escape|escape5]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<<set $Corruption += 1>>
<<set $CaseyRape += 1>>
<<if $CaseyRape gte 10>>
<<goto "RapeSuck">>
<</if>>
<<setAvatarDirect "nude.png">>
<<if $escapeVideo isnot true>>
<<unlockVideo 1 6>>
<<unlockVideo 1 7>>
<<set $escapeVideo = true>>
<</if>><<dialogue "" "You’re lying down. Your vision blurs. From above, he falls on you like a beast. You writhe, but you have no strength. Your arms tremble. He sniffs you. He licks you. He grins with an inhuman grimace." "description">>
<<addDialogue "Patient" "Mine… only mine… my treasure." "talk">>
<<addDialogue "" "His fingers slide inside you without resistance, slightly parting your lower lips. And you can do nothing." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|E6b]]">>
<<addDialogue "" "<a tabindex="0" role="button" id="save-button">Load Game</a>">>
<<horizontalEnd>>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<script>>
window.HealthSanitySystem.addHealth(50)
<</script>>
<<set $MHenemy = true>>
<<set $MHfight = 2>>
<<set $EventE6 = 1>>
<<include "Change_MenuIMG">><<dialogue "" "You’re lying down. Your vision blurs. From above, he falls on you like a beast. You writhe, but you have no strength. Your arms tremble. He sniffs you. He licks you. He grins with an inhuman grimace." "description">>
<<addDialogue "Patient" "Mine… only mine… my treasure." "talk">>
<<addVideo "media/casey/castigoanal.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "His fingers slide inside you without resistance, slightly parting your lower lips while his member relentlessly punishes your anus. And you can do nothing but scream." "description">>
<<addVideo "media/casey/castigoanal2.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "The man, breathing heavily with a twisted look of satisfaction, slowly steps back. Without saying a word, he pulls his clothes back on and leaves, the door creaking shut behind him." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Escape|escape6]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<<set $Corruption += 2>>
<<set $CaseyRape +=1>>
<<if $CaseyRape gte 10>>
<<goto "RapeSuck">>
<</if>>
<<setAvatarDirect "nude.png">>
<<if $escapeVideo isnot true>>
<<unlockVideo 1 6>>
<<unlockVideo 1 7>>
<<set $escapeVideo = true>>
<</if>><<if window.gameState.lanternOn>>
<<goto "CellCorridorA2Light">>
<<else>>
<<dialogue "" "The rusty doors on both sides have scratches and stains around the barred windows." "description">>
<<horizontalStart>>
<<if $lfd isnot true>>
<<addDialogue "" "[[Left Door|lfd]]">>
<<else>>
<<addDialogue "" "[[Examination room|ConsA]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Bedooms (A) coridor|BedroomA]]">>
<<addDialogue "" "[[Back to Grand Hall|CellCorridorA]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<script>>
window.setLighting(60);
<</script>><<dialogue "" "Your flashlight's beam lights up a hallway leading to a maze of corridors. The walls are covered in grime and fingerprints, and the doors to the patients' rooms are visible in the distance." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms A|CellCorridorA2]]">>
<<addDialogue "" "[[Grand Hall|Grand Hall]]">>
<<horizontalEnd>>
<<disableSanityEvents>>
<<enableSanityEvents>>
<<dialogue "" "The light up the curving corridor. The rusty doors on both sides have scratches and stains around the barred windows." "description">>
<<horizontalStart>>
<<if $lfd isnot true>>
<<addDialogue "" "[[Left Door|lfd]]">>
<<else>>
<<addDialogue "" "[[Examination room|ConsA]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Bedooms (A) coridor|BedroomA]]">>
<<addDialogue "" "[[Back to Grand Hall|CellCorridorA]]">>
<<horizontalEnd>>
<<set $enemyChance = random(5)>>
<<if $enemyChance lte 1>>
<<goto "CorridorA2enemy">>
<</if>>
<<script>>
window.setLighting(80);
<</script>><<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|ConsA]]">>
<<addDialogue "" "[[Back|CellCorridorA2]]">>
<<horizontalEnd>>
<<if window.gameState.lanternOn>>
<<goto "ConsAlight">>
<<else>>
<<dialogue "" "A dim light filtering through the window illuminates the center of the room, where a dark figure—the stretcher—casts a long, ominous shadow. The rest is a mass of darkness, with barely distinguishable silhouettes of furniture. The air smells of stale disinfectant and something more metallic. Every sound is amplified, as if the walls are breathing with you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|CellCorridorA2]]">>
<<horizontalEnd>>
<</if>>
<<set $lfd = true>>
<<script>>
window.setLighting(60);
<</script>>
<<if window.gameState.lanternOn>>
<<goto "BedroomALight">>
<<else>>
<<dialogue "" "The darkness is penetrating in what seems like an endless long corridor. A smell of ancient dust and deteriorated paper floats in the stagnant air. Your fingers occasionally brush against rough surfaces you cannot identify. The claustrophobic sensation increases with each uncertain step. The silence is only interrupted by distant creaks and the occasional metallic sound you cannot locate." "description">>
<<horizontalStart>>
<<if $doorA isnot true>>
<<addDialogue "" "[[Left Door|doorA]]">>
<<else>>
<<addDialogue "" "[[Room 111|roomA]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Go to Grand Hall|CellCorridorA2]]">>
<<addDialogue "" "[[Corridor - Bedrooms C|CellCorridorC]]">>
<<addDialogue "" "[[Go to livingroom|CellCorridorD]]">>
<<addDialogue "" "[[Corridor - Bedrooms B|CellCorridorB]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<<disableSanityEvents>>
<<enableSanityEvents>>
<</if>>
<<set $randomText = random(1)>>
<<if $randomText is 0>>
<<dialogue "" "Something is moving in the darkness, stepping out from the shadows attracted by the light of your flashlight." "description">>
<<else>>
<<dialogue "" "The light from your flashlight reveals a silhouette at the end of the hallway. It's a nurse with a torn and blood-stained uniform, her face contorted in an inhuman grimace. Suddenly, she turns her head towards you." "description">>
<<addDialogue "Mad Nurse" " Patient... escaping..." "talk">>
<<addDialogue "Casey" "I'm not a fucking patient!" "talk">>
<<addDialogue "" "Her hands hold a rusty, abnormally large object. She lunges at you with impossible speed." "description">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Fight|CorridorA2fight]]">>
<<horizontalEnd>>
<<set $corridorANurse = 1>>
<<dialogue "" "You walk down the hallway. Suddenly, you hear a sound that chills your blood: a wet, distorted babble. You stop, your breath quickening. From a dark corner, the creature appears—a deformed being with a grotesque appearance. It slowly crawls toward you. The creature is coming for you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|demonA2pelea]]">>
<<horizontalEnd>>
<<set $DemonA2 = 1>><<dialogue "" "The medical furniture is covered in dust and cobwebs, with remnants of old bandages scattered across the countertop. In the center, the blood-stained stretcher looks more like a torture altar than a medical instrument. The walls are decorated with faded wallpaper and half-fallen medical warnings. The window at the back barely allows a glimpse of rain hitting the glass." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|CellCorridorA2]]">>
<<horizontalEnd>>
<<script>>
window.setLighting(80);
<</script>><<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|roomA]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|BedroomA]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "roomALight">>
<<else>>
<<dialogue "" "You slowly peek your head in... but see nothing. The darkness in this room is total, suffocating—like a black veil that smothers your senses. There are no windows, no lights, not even the faintest glimmer of reflection." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|BedroomA]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<set $doorA = true>>
<<if window.gameState.lanternOn>>
<<goto "CellCorridorCLight">>
<<else>>
<<dialogue "" "The flickering fluorescent emergency lights cast a faint, sickly green glow over the hallway, their soft hum the only sound. Dark stains and marks mar the walls, some scrawled into frantic words you can’t quite decipher. The wet floor reflects the eerie light, and a faint chill clings to the space." "description">>
<<horizontalStart>>
<<if $ConsC isnot true>>
<<addDialogue "" "[[Right Door|ConsdoorC]]">>
<<else>>
<<addDialogue "" "[[Examination room|ConsC]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms A|BedroomA]]">>
<<addDialogue "" "[[Corridor - Bedrooms D|BedroomD]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<<if $bbenemy isnot true>>
<<goto "bbenemy">>
<</if>>
<</if>><<if window.gameState.lanternOn>>
<<goto "CellCorridorDLight">>
<<else>>
<<dialogue "" "The hallway is narrow, wrapped in thick darkness. Only your flashlight cuts through the shadows, revealing fragments of peeling walls that seem ready to collapse. The cracked linoleum crunches beneath your feet. On either side, rusted metal doors line the corridor at uneven intervals, like forgotten sentinels." "description">>
<<horizontalStart>>
<<if $RedE isnot true>>
<<addDialogue "" "[[Left Door|RedEdoor]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<if $RedE is true>>
<<addDialogue "" "[[Red elevators|RedE]]">>
<</if>>
<<addDialogue "" "[[Corridor - Bedrooms A|BedroomA]]">>
<<addDialogue "" "[[Livingroom]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<script>>
window.setLighting(50);
<</script>>
<<if window.gameState.lanternOn>>
<<goto "CellCorridorBLight">>
<<else>>
<<dialogue "" "Darkness swallows the narrow hallway. You can’t see the floor beneath you, only feel its uneven surface under your steps. The air is heavy, damp, and still. A faint metallic scent lingers. Shapes loom in the blackness—doors, maybe—but nothing is certain. Every sound echoes too loudly, and the silence in between feels alive." "description">>
<<horizontalStart>>
<<if $leftroomB isnot true>>
<<addDialogue "" "[[Left Door|LeftdoorB]]">>
<<else>>
<<addDialogue "" "[[Room 121|LeftroomB]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms A|BedroomA]]">>
<<addDialogue "" "[[Corridor - Bedrooms B|BedroomB]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<dialogue "" "The light reveals a long hallway with numbered doors on both sides. The once-elegant wallpaper now hangs in yellowish tatters from moisture-stained walls. Several doors stand ajar, others remain firmly closed with rusted locks. The rotting wooden floor sinks slightly beneath your feet. Old photographs in dusty frames adorn the walls between the rooms, their faces barely recognizable under layers of dirt and time.">>
<<horizontalStart>>
<<if $doorA isnot true>>
<<addDialogue "" "[[Left Door|doorA]]">>
<<else>>
<<addDialogue "" "[[Room 111|roomA]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Go to Grand Hall|CellCorridorA2]]">>
<<addDialogue "" "[[Corridor - Bedrooms C|CellCorridorC]]">>
<<addDialogue "" "[[Go to livingroom|CellCorridorD]]">>
<<addDialogue "" "[[Corridor - Bedrooms B|CellCorridorB]]">>
<<horizontalEnd>>
<<disableSanityEvents>>
<<enableSanityEvents>><<dialogue "" "The light cuts through the darkness, revealing a room frozen in time. Dust floats in the air, caught in the cone of light, and the beam flickers slightly as it passes over peeling walls and rusted metal. To one side, there's a metal bed covered with a stained, crumpled sheet. Beside it, a rusted nightstand holds what looks like an empty pill bottle and a shattered framed photo. In the opposite corner, a rotting wooden chair lies toppled over, as if someone had pushed it violently." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|BedroomA]]">>
<<horizontalEnd>>
<<if $bwfight is 1>>
<<createAdvancedEvent "HealthAndVariable" 10 "<" "passage" "E1" true "health" "EventE1"
1>>
<</if>>
<<if $bwfight2 is 1>>
<<createAdvancedEvent "HealthAndVariable" 10 "<" "passage" "E2" true "health" "EventE2"
1>>
<</if>>
<<if $srcsf is 1>>
<<createAdvancedEvent "HealthAndVariable" 10 "<" "passage" "E3" true "health" "EventE3"
1>>
<</if>>
<<if $Sroom2 is 1>>
<<createAdvancedEvent "HealthAndVariable" 10 "<" "passage" "E4" true "health" "EventE4"
1>>
<</if>>
<<if $srcsf is 1>>
<<createAdvancedEvent "HealthAndVariable" 10 "<" "passage" "E5" true "health" "EventE5"
1>>
<</if>>
<<if $MHfight is 1>>
<<createAdvancedEvent "HealthAndVariable" 10 "<" "passage" "E6" true "health" "EventE6"
1>>
<</if>>
<<createAdvancedEvent "HealthAndVariable" 10 "<" "passage" "nurseEvent" true "health" "TNurses"
1>>
<<if $aberrationfight1 is 1>>
<<createAdvancedEvent "HealthAndVariable" 10 "<" "passage" "Event_Aberration01" true "health" "AberrationEvent"
1>>
<</if>>
<<createAdvancedEvent "HealthAndVariable" 10 "<" "passage" "EventPB1" true "health" "EventPB1"
1>>
<<createAdvancedEvent "HealthAndVariable" 10 "<" "passage" "EventPB2" true "health" "EventPB2"
1>>
<<if $ELCD is 1>>
<<createAdvancedEvent "HealthAndVariable" 10 "<" "passage" "Event_ELCD_Lose" true "health" "ELCD"
1>>
<</if>>
<<addSanityEvent
"DoorCorridorEvent"
10
"DoorEvent"
"<="
true
10
"CellCorridorB2"
null
null
"Something happends..."
"heartbeat.mp3"
>>
<<addSanityEvent
"DoorCorridorEvent2"
10
"DoorEvent"
"<="
true
10
"CellCorridorB2Light"
null
null
"Something happends..."
"heartbeat.mp3"
>>
<<addSanityEvent
"LabInstance"
10
"doorEventLab"
"<="
true
10
"LabCorridorA2Light"
null
null
"Something happends..."
"heartbeat.mp3"
>>
<<addSanityEvent
"LabInstance2"
10
"doorEventLab"
"<="
true
10
"LabCorridorA2"
null
null
"Something happends..."
"heartbeat.mp3"
>>
<<addSanityEvent
"BrokeSisterEvent"
10
"brokeSister"
"<="
true
0
"Main hallway"
"brokeSister"
true
"Something happends..."
"heartbeat.mp3"
>>
<<addSanityEvent
"BrokeSisterEvent1"
10
"brokeSister1"
"<="
true
0
"Main hallway2"
"brokeSister"
true
"Something happends..."
"heartbeat.mp3"
>>
<<addSanityEvent
"BrokeSisterEvent2"
10
"brokeSister2"
"<="
true
0
"BedroomA"
"brokeSister"
true
"Something happends..."
"heartbeat.mp3"
>>
<<addSanityEvent
"BrokeSisterEvent3"
10
"brokeSister2"
"<="
true
0
"BedroomALight"
"brokeSister"
true
"Something happends..."
"heartbeat.mp3"
>>
<<addSanityEvent
"BrokeSisterEvent4"
10
"brokeSister3"
"<="
true
0
"BedroomD"
"brokeSister"
true
"Something happends..."
"heartbeat.mp3"
>>
<<addSanityEvent
"BrokeSisterEvent5"
10
"brokeSister3"
"<="
true
0
"BedroomDLight"
"brokeSister"
true
"Something happends..."
"heartbeat.mp3"
>>
<<addSanityEvent
"BrokeSisterEvent6"
10
"brokeSister4"
"<="
true
0
"CellCorridorA"
"brokeSister"
true
"Something happends..."
"heartbeat.mp3"
>>
<<addSanityEvent
"BrokeSisterEvent7"
10
"brokeSister4"
"<="
true
0
"CellCorridorALight"
"brokeSister"
true
"Something happends..."
"heartbeat.mp3"
>>
<<if window.gameState.lanternOn>>
<<goto "BedroomBLight">>
<<else>>
<<dialogue "" "A narrow hallway shrouded in darkness. Peeling walls barely visible in the gloom. Remnants of cracked linoleum on the floor. Rusted metal doors aligned at irregular intervals." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Common Showers|showerB]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms A|CellCorridorB]]">>
<<addDialogue "" "[[Corridor - Bedrooms C|CellCorridorB2]]">>
<<horizontalEnd>>
<<script>>
window.setLighting(60);
<</script>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<dialogue "" "The flashlight casts a weak, flickering beam down the narrow hallway. Faded stains and cracks mar the floor beneath your feet. The walls, flaking and damp, seem to close in around you. Rusted metal doors line the corridor, each one slightly ajar, as if waiting. The silence is thick, broken only by the soft hum of your flashlight." "description">>
<<horizontalStart>>
<<if $leftroomB isnot true>>
<<addDialogue "" "[[Left Door|LeftdoorB]]">>
<<else>>
<<addDialogue "" "[[Room 121|LeftroomB]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms A|BedroomA]]">>
<<addDialogue "" "[[Corridor - Bedrooms B|BedroomB]]">>
<<horizontalEnd>>
<<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|LeftroomB]]">>
<<addDialogue "" "[[Back|CellCorridorB]]">>
<<horizontalEnd>>
<<set $leftroomB = true>><<if window.gameState.lanternOn>>
<<goto "LeftroomBLight">>
<<else>>
<<dialogue "" "The darkness envelops you completely. You can't see anything, only sense the presence of the room around you through the thick, heavy air." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|CellCorridorB]]">>
<<horizontalEnd>>
<</if>>
<<dialogue "" "The light weakly illuminates the room, revealing an old metal bed. The sheets are messy, torn, and dirty. In the corner, a wooden wardrobe, slightly crooked, with the door ajar, and stacked boxes nearby, covered in dust." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check boxes|boxesB]]">>
<<addDialogue "" "[[Check wardrobe|wardrobeB]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|CellCorridorB]]" "center">>
<<if $itemhere isnot true>>
<<set $Randomsearch = random(2)>>
<<if $Randomsearch is 0>>
<<dialogue "" "You find 4 cheap batteries. " "description">>
<<addImage "img/events/boxes.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take batteries|lrbateries|?!canPickupBattery]]">>
<<horizontalEnd>>
<<elseif $Randomsearch is 1>>
<<dialogue "" "You find 18 rounds 9mm. " "description">>
<<addImage "img/events/boxes.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take ammo|lrab|?!canPickupPistolAmmo]]">>
<<horizontalEnd>>
<<elseif $Randomsearch is 2>>
<<dialogue "" "You find 15 incendiary rounds 9mm." "description">>
<<addImage "img/events/boxes.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take ammo|lrab2|?!canPickupPistolAmmoIncendiary]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Back|LeftroomB]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "You open the boxes, but they're empty, just filled with dust. There's nothing left. Everything has been taken." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Back|LeftroomB]]">>
<<horizontalEnd>>
<</if>>
<<if $osito isnot true>>
<<dialogue "" "Lying in the corner of the wardrobe, half-buried under crumpled clothes, is a small dusty teddy bear. One of its button eyes is missing, leaving behind a dark, empty socket. Its fur is matted, and its seams are barely holding together. Someone once held it close... a long time ago." "description">>
<<addImage "img/events/wardrobe.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take teddy bear|teddy|?inventoryFull]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|LeftroomB]]" "center">>
</div>
</div>
<<else>>
<<dialogue "" "You open the wardrobe slowly, the door creaking loudly in the silence. Inside, there's only a tangle of dust-covered clothes, moth-eaten and brittle to the touch. Whatever was once here is long gone. Nothing useful remains." "description">>
<<addImage "img/events/wardrobe.png">>
<<addDialoguePos "" "[[Back|LeftroomB]]" "center">>
<</if>>
<<dialogue "" "The batteries are in your power now." "description">>
<<addImage "img/events/boxes.png">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|LeftroomB]]">>
<<horizontalEnd>>
<<addItem "battery" 4>>
<<set $itemhere = true>>
<<dialogue "" "You take the ammo." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|LeftroomB]]">>
<<horizontalEnd>>
<<script>>
addAmmo('9mm', 18)
<</script>>
<<set $itemhere = true>>
<<dialogue "" "You take the ammo." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Back|LeftroomB]]">>
<<horizontalEnd>>
<<script>>
addAmmo('incendiary', 15)
<</script>>
<<set $itemhere = true>>
<<addImage "img/events/boxes.png">> <<dialogue "" "You pick up the teddy bear and place it in your backpack." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Back|LeftroomB]]">>
<<horizontalEnd>>
<<script>>
const itemKey = 'teddybear';
const itemName = 'Tedd Bear';
const itemDescription = 'Teddy bear, helps maintain your mental state. (Restore 100 sanity).';
const itemValue = 300;
const imagePath = `img/items/special/teddybear.png`;
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "special",
image: imagePath,
stackable: true,
maxStack: 1,
value: itemValue,
weight: 0.2,
isSellable: true,
sanityRestore: 100
};
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 1,
img: imagePath
};
//Adding item ro inventory
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
window.ShopSystem.populateSellItems();
<</script>>
<<set $osito = true>>
<<if window.gameState.lanternOn>>
<<goto "showerBLight">>
<<else>>
<<dialogue "" "Impenetrable darkness between damp walls. The echo of constant dripping resonates in the invisible space. A penetrating smell of mold and rust fills the dense air. Broken tiles crunch under your feet as you move blindly forward. The humidity clings to your skin in this black void." "description">>
<<addDialoguePos "" "[[Exit|BedroomB]]" "center">>
<</if>>
<<script>>
window.setLighting(60);
<</script>><<if window.gameState.lanternOn>>
<<goto "CellCorridorB2Light">>
<<else>>
<<dialogue "" "Darkness surrounds you. The air feels stale with humidity. Occasional drops of water punctuate the floor beneath your feet alternates between worn stone and patches of slippery, unidentifiable substances. A faint, distant rumor trembles through the floor at irregular intervals, like the breath of something massive stirring far below." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms B|BedroomB]]">>
<<addDialogue "" "[[Corridor - Bedrooms C|BedroomC]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<<disableSanityEvents>>
<<enableSanityEvents>>
<</if>>
<<dialogue "" "The flashlight casts a weak, flickering beam down the narrow hallway. Faded stains and cracks mar the floor beneath your feet. The walls, flaking and damp, seem to close in around you. Rusted metal doors line the corridor, each one slightly ajar, as if waiting. The silence is thick, broken only by the soft hum of your flashlight." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms A|CellCorridorB]]">>
<<addDialogue "" "[[Corridor - Bedrooms B|CellCorridorB2]]">>
<<horizontalEnd>>
<<if $ActiveBB is true>>
<<set $enemyChance = random(5)>>
<<if $enemyChance is 5>>
<<goto "BedBenemyBB">>
<</if>>
<</if>>
<<script>>
window.setLighting(80);
<</script>><<dialogue "" "The light reveals rows of rusted showerheads hanging from walls covered in greenish mold. Stagnant puddles reflect the light beam on the floor of broken tiles. As you move the light to one side, metal lockers appear lined against the wall, their dented doors ajar, some with padlocks still hanging, others showing their empty, rusted interiors." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check first loocker|showerlockerB]]">>
<<addDialogue "" "[[Check second loocker|showerlockerB2]]">>
<<addDialogue "" "[[Check third loocker|showerlockerB3]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|BedroomB]]" "center">>
<<script>>
window.setLighting(80);
<</script>><<dialogue "" "You open the locker's door, its empty." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Get inside|LockerB]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|showerB]]" "center">>
<<dialogue "" "The locker door is jammed and cannot be opened." "description">>
<<addDialoguePos "" "[[Back|showerB]]" "center">>
<<if $showerbAmmo isnot true>>
<<dialogue "" "As you rummage through the cabinet, you find 20 rounds 9mm." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take ammo|LockerBammo|?!canPickupPistolAmmo]]">>
<<addDialogue "" "[[Get inside|LockerB]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|showerB]]" "center">>
<<else>>
<<dialogue "" "Nothing remains." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Get inside|LockerB]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|showerB]]" "center">>
<</if>>
<<dialogue "" "You pick up the 9mm ammo and put it in your backpack." "description">>
<<addDialogue "Casey" "This is good..." "talk">>
<<addDialoguePos "" "[[Back|showerB]]" "center">>
<<script>>window.addItemFromDatabase('pistol_ammo', 24);<</script>>
<<set $showerbAmmo = true>><<switch visited()>>
<<case 1>>
<<dialogue "" "You hide in the locker, the cold metal pressing against your back. Nothing’s chasing you, but the abandoned psychiatric hospital, with its echoes of kidnappings and lurking monsters, keeps you on edge. A distant creak tightens your nerves." "description">>
<<addDialogue "Casey" "Phew... this is claustrophobic. I hope I don't have to do this many times..." "talk">>
<<default>>
<<dialogue "" "You hide in the locker, the cold metal pressing against your back. Nothing’s chasing you, but the abandoned psychiatric hospital, with its echoes of kidnappings and lurking monsters, keeps you on edge." "description">>
<<set $randomComent = random(5)>>
<<if $randomComent is 5>>
<<addDialogue "Casey" "Phew... this is claustrophobic. I hope I don't have to do this many times..." "talk">>
<</if>>
<</switch>>
<<addDialoguePos "" "[[Exit|showerB]]" "center">>
<<if $DemonHunt is true>>
<<goto "DemonHuntSkip">>
<</if>>
<<dialogue "" "You slip into the locker, the icy metal digging into your back, your pulse pounding in your ears. A twisted shadow with claws that scrape the floor of the abandoned psychiatric hospital moves, prowling, its heavy steps grinding closer down the corridor." "description">>
<<addDialogue "" "Keep moving, damn monster. Just have to wait, you think, keeping your nerves in check, eyes locked on the slivers of light through the locker’s vents flickering with the creature’s every move." "thoughts">>
<<addDialogue "" "The air grows thicker with each step of the demon, its claws grazing the walls, searching. You hold your breath as it stops right outside, so close you can hear the drag of its skin against the floor. A low growl rumbles in the silence, and for a moment, you think the locker door will give way. But then, the steps resume, slower, fading. The scrape of its claws dwindles down the hallway until only heavy, fragile silence remains." "description">>
<<addDialogue "Casey" "Finally…" "talk">>
<<addDialoguePos "" "[[Exit|BedroomB]]" "center">>
<<set $DemonHunt = false>>
<<ser $DemonPelea = 0>>
<<removecountdown>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('lobytheme.mp3', 4000);
}, 1000);
<</script>><<switch visited()>>
<<case 1>>
<<dialogue "" "You walk down the hallway, the darkness almost swallowing the decaying walls. A sound makes you stop—a wet gurgle, like a baby’s babble twisted by something evil." "description">>
<<addDialogue "Casey" "What the hell?! That thing again!" "talk">>
<<addDialogue "" "That’s not human... This isn’t right, you think, heart pounding as the blackness seems to pulse around you." "thoughts">>
<<addDialogue "" "Then, from a dark corner, you see it: a demonic baby. Its wrinkled, ashen skin gives off a faint, sickly glow. Sunken eyes shine with pure hatred, and its grotesque mouth reveals needle-like teeth. It crawls slowly toward you, hissing—a sound that turns your stomach." "description">>
<<addDialogue "Casey" "Don’t come any closer, you damned thing!" "talk">>
<div id="Ntext">A high-pitched scream pierces the air, as if the creature were mocking you, and the hallway seems to vibrate with its evil presence." "description">>
<<default>>
<<dialogue "" "You walk down the hallway. Suddenly, you hear a sound that chills your blood: a wet, distorted babble. You stop, your breath quickening. From a dark corner, the creature appears—a deformed being with a grotesque appearance. It slowly crawls toward you. The creature is coming for you." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Fight|bbfight2]]">>
<<horizontalEnd>>
<<set $bbfight = 1>>
<<timed 1s>>
<<script>>
playSoundDirect('evilbb.mp3');
<</script>>
<</timed>>
<<timed 10s>>
<<script>>
playSoundDirect('evilbb.mp3');
<</script>>
<</timed>>
<<set $RandomDistance = random(10)>>
<<if $RandomDistance gte 0>>
<<run startAdvancedBattle([
{
type: 'mawling',
hp: 50,
distance: 20,
randomDistance: true,
speed: "3-6",
minMovement: 3,
maxMovement: 6,
damage: 1,
sanityDamage: 6,
DamageIgnore: {
'pistol': 0.1,
'rifle': 0.1,
'shotgun': 0.1,
'melee': 0.1,
'incendiary': 0.1,
'dragon_breath': 0.1,
'tracer': 0.1,
'9mm': 0.1,
'.45': 0.1,
'slugs': 0.1
}
}
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<elseif $RandomDistance gt 4>>
<<run startAdvancedBattle([
{
type: 'mawling',
hp: 50,
distance: 20,
randomDistance: true,
speed: "3-8",
minMovement: 3,
maxMovement: 8,
damage: 1,
sanityDamage: 6,
DamageIgnore: {
'pistol': 0.1,
'rifle': 0.1,
'shotgun': 0.1,
'melee': 0.1,
'incendiary': 0.1,
'dragon_breath': 0.1,
'tracer': 0.1,
'9mm': 0.1,
'.45': 0.1,
'slugs': 0.1
}
}
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<elseif $RandomDistance gt 8>>
<<run startAdvancedBattle([
{
type: 'mawlingStrong',
hp: 70,
distance: 20,
randomDistance: true,
speed: "3-6",
minMovement: 3,
maxMovement: 6,
damage: 2,
sanityDamage: 8,
DamageIgnore: {
'pistol': 0.2,
'rifle': 0.2,
'shotgun': 0.2,
'melee': 0.2,
'incendiary': 0.2,
'dragon_breath': 0.2,
'tracer': 0.2,
'9mm': 0.2,
'.45': 0.2,
'slugs': 0.2
}
}
], 'VictoryPassage', true, 'CombatEscape', false)>>
<</if>>
<<if window.ClothingSystem.currentClothes === 'jacket'>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<elseif window.ClothingSystem.currentClothes === 'coat'>>
<<setAvatarDirect "caseycoatpistol.png">>
<<else>>
<<setAvatarDirect "caseycoatpistol.png">>
<</if>><<if window.gameState.lanternOn>>
<<goto "BedroomCLight">>
<<else>>
<<if $storageKey isnot true && $nurseEvent is 2>>
<<dialogue "" "A narrow hallway swallowed by shadows. The peeling walls are barely visible. The air is thick and damp. A few doors line the corridor, slightly ajar, as if waiting for someone to step through. Silence hangs heavy, but it doesn’t feel empty. A small, rusted key lies on the floor, catching the faint glint of unseen light." "description">>
<<elseif $storageKey is true && $nurseEvent is 2>>
<<dialogue "" "A narrow hallway swallowed by shadows. The peeling walls are barely visible. The air is thick and damp. A few doors line the corridor, slightly ajar, as if waiting for someone to step through. Silence hangs heavy, but it doesn’t feel empty." "description">>
<<else>>
<<dialogue "" "A narrow hallway swallowed by shadows. The peeling walls are barely visible. The air is thick and damp. A few doors line the corridor, slightly ajar, as if waiting for someone to step through. Silence hangs heavy, but it doesn’t feel empty." "description">>
<</if>>
<<horizontalStart>>
<<if $storageKey isnot true && $nurseEvent is 2>>
<<addDialogue "" "[[Take the key|keyL|?inventoryFull]]">>
<</if>>
<<addDialogue "" "[[Common showers|showerC]]">>
<<if $Pasaduci isnot true>>
<<addDialogue "" "[[Left Door|PasaduciDoor]]">>
<<else>>
<<addDialogue "" "[[Room 140|Pasaduci]]">>
<</if>>
<<if $BCoffice isnot true>>
<<addDialogue "" "[[Right Door|ConsdoorC2]]">>
<<else>>
<<addDialogue "" "[[Office|BCoffice]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms B|CellCorridorB2]]">>
<<addDialogue "" "[[Corridor - Bedrooms D|CellCorridorC2]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<dialogue "" "The light reveals a long institutional corridor with peeling walls. Deteriorated bulletin boards hang askew, with yellowed papers and illegible medical notices. Exposed pipes run along the ceiling, occasionally dripping. On the walls, traces of scratches and frantic writing suggest the desperate communication attempts of former patients." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms B|BedroomB]]">>
<<addDialogue "" "[[Corridor - Bedrooms C|BedroomC]]">>
<<horizontalEnd>>
<<disableSanityEvents>>
<<enableSanityEvents>>
<<if window.gameState.lanternOn>>
<<goto "showerCLight">>
<<else>>
<<dialogue "" "You enter the communal shower room, but you can't see absolutely anything. The darkness is total, impenetrable." "description">>
<<addDialoguePos "" "[[Back|BedroomC]]" "center">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|Pasaduci]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|BedroomC]]" "center">>
<<if $PasaduciEnemy isnot true>>
<<if window.gameState.lanternOn>>
<<goto "TwonursesEvent">>
<<else>>
<<goto "MonsterEvent">>
<</if>>
<</if>>
<<if window.gameState.lanternOn>>
<<goto "PasaduciCLight">>
<<else>>
<<dialogue "" "You can barely make out anything around you, just blurred shadows. However, you can see the hole in the floor, its irregular shape cutting through the dim light." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Inspect Hole|Bujero3]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|BedroomC]]" "center">>
<<set $Pasaduci = true>>
<<if $bujero isnot true && $PasaduciEnemy is true>>
<<goto "Bujero">>
<</if>>
<<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|BCoffice]]">>
<<horizontalEnd>>
<<addDialoguePos "" "[[Back|BedroomC]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "BCofficeLight">>
<<else>>
<<dialogue "" "The darkness engulfs you completely as you step into what seems to be an office, a black void that feels like it’s swallowing everything around you. You can’t make out any shapes or outlines, only sensing the empty space and a faint smell of dust that permeates the place." "description">>
<<addDialoguePos "" "[[Exit|BedroomC]]" "center">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<if window.gameState.lanternOn>>
<<goto "CellCorridorC2Light">>
<<else>>
<<dialogue "" "The hallway is shrouded in darkness, and the heavy air seems to crush you. The nauseating smell of rot and dampness fills your nostrils. You can barely make out the shadows of the walls, but you can feel the presence of closed doors around you, some creaking from age. The floor, sticky and slippery, seems to absorb every step you take, while an oppressive silence fills the space." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms D|BedroomD]]">>
<<addDialogue "" "[[Corridor - Bedrooms C|BedroomC]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<if $storageKey is true && $nurseEvent is 2>>
<<dialogue "" "The beam of your flashlight cuts through the darkness, revealing a narrow hallway frozen in decay. Cracked linoleum lines the floor, and rusted doors sit unevenly along the walls. Dust floats in the air, disturbed by your steps. Everything feels still… but watched." "description">>
<<elseif $storageKey isnot true && $nurseEvent is 2>>>>
<<dialogue "" "A narrow hallway swallowed by shadows. The peeling walls are barely visible. The air is thick and damp. A few doors line the corridor, slightly ajar, as if waiting for someone to step through. Silence hangs heavy, but it doesn’t feel empty. On the floor, half-hidden by dust, a small rusted key catches the faint glint of unseen light." "description">>
<<else>>
<<dialogue "" "The beam of your flashlight cuts through the darkness, revealing a narrow hallway frozen in decay. Cracked linoleum lines the floor, and rusted doors sit unevenly along the walls. Dust floats in the air, disturbed by your steps. Everything feels still… but watched." "description">>
<</if>>
<<horizontalStart>>
<<if $storageKey isnot true && $nurseEvent is 2>>
<<addDialogue "" "[[Take the key|keyL|?inventoryFull]]">>
<</if>>
<<addDialogue "" "[[Common showers|showerC]]">>
<<if $Pasaduci isnot true>>
<<addDialogue "" "[[Left Door|PasaduciDoor]]">>
<<else>>
<<addDialogue "" "[[Room 140|Pasaduci]]">>
<</if>>
<<if $BCoffice isnot true>>
<<addDialogue "" "[[Right Door|ConsdoorC2]]">>
<<else>>
<<addDialogue "" "[[Office|BCoffice]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms B|CellCorridorB2]]">>
<<addDialogue "" "[[Corridor - Bedrooms D|CellCorridorC2]]">>
<<horizontalEnd>>
<<dialogue "" "The wall tiles, once white, are now stained and cracked, with mold spreading through the grout lines. The broken remains of a mirror above a grimy sink reflect the room in warped, unsettling fragments. At the back, several shower stalls stand in a row, their curtains torn or missing, revealing rusted drains and floors covered in mildew. Crushed plastic cups and broken pieces of soap dispensers are scattered across the damp, slippery floor." "description">>
<<addDialoguePos "" "[[Exit|BedroomC]]" "center">>
<<dialogue "" "You illuminate the office. The light reveals an old desk in the center, covered in dust, with an ancient computer on it. The monitor is off, its black screen faintly reflecting the light, and the keyboard is draped in cobwebs." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check the desk|BCdesk]]">>
<<horizontalEnd>>
<<addDialoguePos "" "[[Exit|BedroomC]]" "center">>
<<set $BCoffice = true>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "As you approach the desk, the light reveals the ancient computer: a scratched beige tower, dusty cables, and a dark monitor with a scratched screen. The keyboard, draped in cobwebs, has worn keys. To the right, a drawer with a rusted handle sits slightly ajar." "description">>
<<default>>
<<dialogue "" "The computer remains powered on at the desk." "description">>
<</switch>>
<<addImage "img/events/deskc2.png">>
<<horizontalStart>>
<<addDialogue "" "[[Open the drawer|bcdrawer]]">>
<<if $Pc isnot true>>
<<addDialogue "" "[[On pc|onpc]]">>
<<else>>
<<addDialogue "" "<div class='main-menu-btn' id='save-button'>Save/Load</div>">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue"" "[[Go back|BCoffice]]">>
<<horizontalEnd>>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>><<if $bcbatteries isnot true>>
<<dialogue "" "You carefully pull on the rusty drawer, causing its metal rails to squeak in protest. Inside, beneath scattered paper clips and forgotten pens, are 2 Medium batteries resting against the back of the drawer." "description">>
<<addImage "img/events/deskc2.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take batteries|BCbatteries|?!canPickupMediumBattery]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|BCoffice]]" "center">>
<<else>>
<<dialogue "" "Only remnants of what was once a pen remain." "description">>
<<addImage "img/events/deskc2.png">>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|BCoffice]]" "center">>
<</if>>
<<dialogue "" "You reach your hand toward the power button on the beige tower and press it cautiously. A faint hum breaks the silence as the computer comes to life. The screen flickers, projecting a pale blue glow that illuminates the dusty desk. " "description">>
<<addDialogue "Casey" "I can't believe this thing still works..." "talk">>
<<addImage "img/events/deskc2.png">>
<<horizontalStart>>
<<addDialogue "" "<div class='main-menu-btn' id='save-button'>Save/Load</div>">>
<<horizontalEnd>>
<<addDialoguePos "" "[[Go back|BCoffice]]" "center">>
<<set $Pc = true>>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<dialogue "" "You grab the medium batteries and put them in your backpack." "description">>
<<addDialogue "" "These will be useful." "thoughts">>
<<addImage "img/events/deskc2.png">>
<<horizontalStart>>
<<addDialogue "" "[[Back|BCoffice]]">>
<<horizontalEnd>>
<<addItem "medium_battery" 2>>
<<set $bcbatteries = true>>
<<dialogue "" "As you open the door, you step into a small, oppressive room, its walls seeming to close in around you. Light is nearly absent; only a few dusty rays seep through the cracks of a boarded-up window, faintly illuminating the specks of dust dancing in the gloom." "description">>
<<addDialogue "" "Seriously? Another hellhole? I can’t take this anymore…" "thoughts">>
<<addDialogue "Casey" "What else could go wrong?" "talk">>
<<addDialogue "" "I’ve lost count of how many times I’ve said it couldn’t get worse… and it always does." "thoughts">>
<<addDialogue "" "A sharp crack echoes from the darkest corner of the room. You spin around, every muscle tense. From the shadows emerges a grotesque creature, roughly the size of an average man. Its muscular body is covered in a viscous, rough skin, a sickly brown that glistens wetly in the faint light." "description">>
<<addDialogue "Casey" "Damn it! What… what is that?" "talk">>
<<addDialogue "" "Is this real? Or have I finally lost my mind for good?" "thoughts">>
<<addDialogue "Casey" "Get back, you filthy abomination! Die!" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|Monster1]]">>
<<horizontalEnd>>
<<set $ME = 1>>
<<dialogue "" "As you open the door, you step into a small, oppressive room. The walls seem to close in around you. There's barely any light—just a few beams slipping through the cracks of a dust-covered window, illuminating the floating dust in the air." "description">>
<<addDialogue "" "Another room..." "thoughts">>
<<addDialogue "Casey" "Pff... And what’s that stench...?" "talk">>
<<addDialogue "" "A sharp sound breaks the silence—something metallic falls to the floor. You turn instinctively. From the darkest corner, two figures emerge. Their uniforms, filthy and worn, still bear the emblem of the psychiatric hospital." "description">>
<<addDialogue "" "Patients? No... looks like nurses..." "thoughts">>
<<addDialogue "" "One of them giggles softly, a sound tense and unnatural. The other stares at you, head tilted, calmly holding a rusted scalpel." "description">>
<<addDialogue "Nurse" "You shouldn't be here... visiting hours ended years ago. We take care of the ones who stay. Want us to take care of you, sweetheart?" "talk">>
<<addDialogue "Casey" "I'm not here to fight. I'm just looking for some answers..." "talk">>
<<addDialogue "Nurse" "Hehe... The answers are inside... but first, we have to open you up." "talk">>
<<addDialogue "" "They begin moving toward you, each step quicker than the last. Their eyes gleam with a mix of euphoria and madness." "description">>
<<addDialogue "Casey" "Alright then. If this is happening, let’s get it over with." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|Nurses1]]">>
<<horizontalEnd>>
<<set $TNurses = 1>>
<<showNPC "Nurse" "img/monsters/nurses/nurse3.png" "Nurse">><<run startAdvancedBattle([
{
type: 'madNurse',
hp: 80,
distance: 15,
randomDistance: true,
speed: "3-5",
minMovement: 3,
maxMovement: 5,
damage: 10,
DamageIgnore: {
'pistol': 0.3,
'rifle': 0.2,
'shotgun': 0.0,
'melee': 0.4,
'incendiary': 0.1,
'dragon_breath': 0.0,
'tracer': 0.0,
'9mm': 0.5,
'.45': 0.4,
'slugs': 0.0
}
},
{
type: 'crazyNurse',
hp: 90,
distance: 20,
randomDistance: true,
speed: "5-8",
minMovement: 5,
maxMovement: 8,
sanityDamage: 8,
DamageIgnore: {
'pistol': 0.1,
'rifle': 0.1,
'shotgun': 0.1,
'melee': 0.1,
'incendiary': 0.1,
'dragon_breath': 0.1,
'tracer': 0.1,
'9mm': 0.1,
'.45': 0.1,
'slugs': 0.1
}
}
], 'VictoryPassage', true, 'CombatEscape', true)>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<run startAdvancedBattle([
{
type: 'demonHunter',
hp: 110,
distance: 30,
randomDistance: true,
speed: "9-13",
minMovement: 9,
maxMovement: 13,
damage: 15,
DamageIgnore: {
'pistol': 0.8,
'rifle': 0.5,
'shotgun': 0.1,
'melee': 1,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.4,
'9mm': 0.8,
'.45': 0.4,
'slugs': 0.4
}
},
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<dialogue "" "The room falls silent again. The monster lies motionless on the floor, its body shattered from the fight, with limbs twisted and disordered. The feeling of its presence slowly fades away, but the adrenaline still pumps through your veins, making the air feel thicker." "description">>
<<addDialogue "" "I don't know how much longer I can keep doing this..." "thoughts">>
<<addDialogue "Casey" "This is insane..." "talk">>
<<addDialogue "" "As you approach the fallen body, something metallic glimmers in the dim light of the room. Cautiously crouching down, you find a rusted key, rusted but still functional. It has a worn-out tag barely legible: Just for emergencies." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take the key|keyL]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|BedroomC]]" "center">>
<<set $PasaduciEnemy = true>>
<<set $ME = 2>><<dialogue "" "You take the key and tuck it into your backpack." "description">>
<<addDialogue "Casey" "Looks like I just earned myself an invitation…" "talk">>
<<addDialogue "" "Next to the key, you find a small bottle of antibiotics, the cap half unscrewed. There are still 2 capsules inside." "description">>
<<addDialogue "" "Hopefully, I won't need them..." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Take antibiotics|antibioticsL|?!canPickupAntibio]]">>
<<horizontalEnd>>
<<addDialoguePos "" "[[Leave the antibiotics|BedroomC]]" "center">>
<<set $storageKey = true>>
<<script>>
// Special item example
const itemKey = 'shotgunKey';
const itemName = 'Key';
const itemDescription = 'A small key with text written on it: "Just for emergencies"';
const itemValue = 100;
const imagePath = `img/items/keys/shotgunkey.png`;
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "special",
image: imagePath,
stackable: false,
maxStack: 1,
value: itemValue,
weight: 0.1,
isSellable: false,
};
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 1,
img: imagePath
};
//Adding item ro inventory
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
window.ShopSystem.populateSellItems();
<</script>><<dialogue "" "The room falls silent once more. The two nurses lie motionless on the floor, their bodies twisted in unnatural ways. Their laughter still lingers faintly in your mind, like a disturbing echo that refuses to fade." "description">>
<<addDialogue "" "I didn’t have a choice..." "thoughts">>
<<addDialogue "" "As you approach the bodies, something metallic catches your eye beneath the torn apron of one of them. You crouch down cautiously and pick it up — a small, rusted key, still intact. A worn-out tag dangles from it, barely legible: Just for emergencies." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take the key|keyL|?inventoryFull]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|BedroomC]]" "center">>
<<set $PasaduciEnemy = true>>
<<set $TNurses = 2>>
<<set $nurseEvent = 2>><<dialogue "" "You grab the antibiotics and put them in your backpack." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|BedroomC]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('antibio', 3);<</script>>
<<if window.gameState.lanternOn>>
<<goto "BedroomDLight">>
<<else>>
<<dialogue "" "A suffocating stillness envelops you in absolute darkness. The air feels unnaturally cold against your skin, carrying a faint scent of antiseptic and something else—metallic and unsettling. Occasionally, you feel currents of air brushing past your face, suggesting openings or spaces to your sides." "description">>
<<horizontalStart>>
<<if $doorD isnot true>>
<<addDialogue "" "[[Left Door|doorD]]">>
<<else>>
<<addDialogue "" "[[Room 131|roomD]]">>
<</if>>
<<if $doorD3 isnot true>>
<<addDialogue "" "[[Right Door|doorD3]]">>
<<else>>
<<addDialogue "" "[[Room 132|roomD3]]">>
<</if>>
<<if $doorD2 isnot true>>
<<addDialogue "" "[[Left Door|doorD2]]">>
<<else>>
<<addDialogue "" "[[Room 133|roomD2]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms A|CellCorridorC]]">>
<<addDialogue "" "[[Corridor - Bedrooms C|CellCorridorC2]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<<disableSanityEvents>>
<<enableSanityEvents>>
<</if>>
<<dialogue "" "The hallway is dark and foul-smelling, the air thick and suffocating, burning your throat. The beam of your flashlight illuminates the dirty walls, where stains of moisture and mold stretch out like scars. The doors to the rooms are shut, some with rusted hinges that creak with the slightest movement. The floor is covered in stagnant puddles that reflect the light from your flashlight, and the stench of decay and filth is unbearable." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms C|BedroomC]]">>
<<addDialogue "" "[[Corridor - Bedrooms D|BedroomD]]">>
<<horizontalEnd>>
<<if $ActiveBB is true>>
<<set $enemyChance = random(5)>>
<<if $enemyChance is 5>>
<<goto "BBenemyC">>
<</if>>
<</if>><<dialogue "" "You walk down the hallway. The darkness is so dense you can barely make out the decaying walls. Suddenly, you hear a sound that chills your blood: a wet, distorted babble—followed immediately by another, eerily similar. You stop, your breath quickening." "description">>
<<addDialogue "" "From a dark corner, two creatures emerge at once—grotesque, deformed figures covered in wounds, their limbs twisted and unnatural. They crawl side by side, as if driven by the same sick instinct. The creatures are coming for you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|bbdfigth2]]">>
<<horizontalEnd>>
<<set $C2PeleaBB = 1>>
<<timed 1s>>
<<script>>
playSoundDirect('evilbb.mp3');
<</script>>
<</timed>>
<<timed 10s>>
<<script>>
playSoundDirect('evilbb.mp3');
<</script>>
<</timed>>
<<run startAdvancedBattle([
{
type: 'madNurse',
hp: 80,
distance: 20,
randomDistance: true,
speed: "3-6",
minMovement: 3,
maxMovement: 6,
damage: 10,
DamageIgnore: {
'pistol': 0.3,
'rifle': 0.2,
'shotgun': 0.0,
'melee': 0.4,
'incendiary': 0.1,
'dragon_breath': 0.0,
'tracer': 0.0,
'9mm': 0.5,
'.45': 0.4,
'slugs': 0.0
}
},
{
type: 'mawling',
hp: 50,
distance: 10,
randomDistance: true,
speed: "3-6",
minMovement: 3,
maxMovement: 6,
damage: 1,
sanityDamage: 6,
DamageIgnore: {
'pistol': 0.1,
'rifle': 0.1,
'shotgun': 0.1,
'melee': 0.1,
'incendiary': 0.1,
'dragon_breath': 0.1,
'tracer': 0.1,
'9mm': 0.1,
'.45': 0.1,
'slugs': 0.1
}
}
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<if window.ClothingSystem.currentClothes === 'jacket'>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<elseif window.ClothingSystem.currentClothes === 'coat'>>
<<setAvatarDirect "caseycoatpistol.png">>
<<else>>
<<setAvatarDirect "caseycoatpistol.png">>
<</if>><<set $randomItem = random(3)>>
<<if $randomItem is 0>>
<<goto "CellCorridorC2">>
<<elseif $randomItem is 1>>
<<dialogue "" "After eliminating the enemies, you found a box of 15 rounds 9mm on the ground, left behind by them." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take ammo|balas|?!canPickupPistolAmmo]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|MainLobby]]" "center">>
<<else>>
<<dialogue "" "After eliminating the enemies, you found a rusty lockpick, lying among the rubble." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take lockpick|ganzua]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|MainLobby]]" "center">>
<</if>>
<<set $C2PeleaBB = 0>><<dialogue "" "You pick up the 24 rounds 9mm ammo and put it in your backpack." "description">>
<<addDialoguePos "" "[[Back|CellCorridorC2]]" "center">>
<<script>>window.addItemFromDatabase('pistol_ammo', 24);<</script>><<dialogue "" "You pick up the lockpicks and put it in your backpack." "description">>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|CellCorridorC2]]" "center">>
<<script>>
window.giveLockpicks(2)
<</script>><<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|roomD]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|BedroomD]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "roomDLight">>
<<else>>
<<dialogue "" "You step inside, but everything is swallowed by complete darkness. The room feels still, almost frozen. You can't make out a single shape—only the sense that you're not alone in here." "description">>
<<horizontalStart>>
<<addDialoguePos "" "[[Exit|BedroomD]]" "center">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<set $doorD = true>>
<<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|roomD3]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|BedroomD]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "roomDLight3">>
<<else>>
<<if $WomaninRoom is true>>
<<dialogue "" "The door creaks open, revealing… nothing. It's like stepping into a void. The air feels thick, and without a source of light, the space around you might as well not exist. Though you can't see clearly in the darkness, you sense someone is there, and as your eyes adjust, you discern the faint outline of a nun." "description">>
<<else>>
<<dialogue "" "The door creaks open, revealing… nothing. It's like stepping into a void. The air feels thick, and without a source of light, the space around you might as well not exist." "description">>
<</if>>
<<horizontalStart>>
<<if $NunExit isnot true>>
<<addDialogue "" "[[Talk to the nun|NunTalk]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialoguePos "" "[[Exit|BedroomD]]" "center">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<set $doorD3 = true>>
<<if $NunRoom isnot true>>
<<goto "NunMeet">>
<</if>><<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|roomD2]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|BedroomD]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "roomDLight2">>
<<else>>
<<dialogue "" "The moment you enter, your vision disappears into pitch black. No light, no detail—just silence and a vague impression of walls closing in. Whatever’s inside remains hidden." "description">>
<<horizontalStart>>
<<addDialoguePos "" "[[Exit|BedroomD]]" "center">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<set $doorD2 = true>>
<<dialogue "" "The narrow beam cuts through darkness to reveal a sterile hospital corridor with pale blue walls. Numbered patient rooms line both sides, their metal doors half-open or completely sealed. Dried bloodstains create dark patterns across the white tile floor, leading in and out of different doorways." "description">>
<<horizontalStart>>
<<if $doorD isnot true>>
<<addDialogue "" "[[Left Door|doorD]]">>
<<else>>
<<addDialogue "" "[[Room 131|roomD]]">>
<</if>>
<<if $doorD3 isnot true>>
<<addDialogue "" "[[Right Door|doorD3]]">>
<<else>>
<<addDialogue "" "[[Room 132|roomD3]]">>
<</if>>
<<if $doorD2 isnot true>>
<<addDialogue "" "[[Left Door|doorD2]]">>
<<else>>
<<addDialogue "" "[[Room 133|roomD2]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms A|CellCorridorC]]">>
<<addDialogue "" "[[Corridor - Bedrooms C|CellCorridorC2]]">>
<<horizontalEnd>>
<<disableSanityEvents>>
<<enableSanityEvents>><<dialogue "" "A metal bed is pushed up against the wall, rusted at the corners, with its mattress torn open and some of the stuffing exposed, as if someone had ripped it out. On the floor, there are fragments of ceramic—possibly from a broken cup or a medication bowl. A small piece of furniture lies crooked, one of its drawers missing and the others pried open, as if forced in desperation. Near the head of the bed, several shallow scratch marks run across the chipped paint in an irregular pattern that feels deeply unsettling." "description">>
<<addDialogue "Casey" "There's nothing here..." "talk">
<<horizontalStart>>
<<addDialoguePos "" "[[Exit|BedroomD]]" "center">>
<<horizontalEnd>>
<<dialogue "" "The wallpaper, once likely colorful, now hangs in peeling strips due to moisture. Scattered across the floor are plastic medication cups—some crushed, others covered in dust. A wheelchair stands motionless in one corner, its backrest torn." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check wheelchair|wheelchairRoomD2]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue"" "[[Exit|BedroomD]]">>
<<horizontalEnd>>
<<if $NunisHere is true>>
<<dialogue "" "You step into a silent, shadowy room. The disheveled bed holds echoes of a troubled past, surrounded by dusty furniture and broken dolls lying still. The walls, covered in frantic scribbles, whisper secrets. In the room, a nun stands with her back turned. An ajar door tempts you toward the unknown." "description">>
<<else>>
<<dialogue "" "You step into a silent, shadowy room. The disheveled bed holds echoes of a troubled past, surrounded by dusty furniture and broken dolls lying still. The walls, covered in frantic scribbles, whisper secrets. An ajar door tempts you toward the unknown." "description">>
<</if>>
<<horizontalStart>>
<<if $NunExit isnot true>>
<<addDialogue "" "[[Talk to the nun|NunTalk]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialoguePos "" "[[Exit|BedroomD]]" "center">>
<<horizontalEnd>>
<<if $NunRoom isnot true>>
<<goto "NunMeet">>
<</if>>
<<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|ConsC]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|CellCorridorC]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "ConsCLight">>
<<else>>
<<dialogue "" "Complete darkness engulfs you. You sense enclosed space around you, the air still and antiseptic. Something solid bumps against your leg as you move cautiously forward. The floor feels cold and smooth beneath your feet." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" "Damn it! I can't see anything." "talk">>
<</switch>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|CellCorridorC]]" "center">>
<</if>>
<<set $ConsC = true>>
<<dialogue "" "A strange noise puts you on edge, a sound you’ve never heard before, like a distorted whimper. Something moves in the shadows." "description">>
<<addDialogue "Casey" "Shit! Who’s there?" "talk">>
<<addDialogue "" "That doesn’t sound human… What the hell is going on here?" "thoughts">>
<<addDialogue "" "Suddenly, a creature emerges, chilling you to the bone: a demonic baby, with wrinkled pink skin, small sunken eyes oozing malice, and a massive mouth filled with sharp teeth." "description">>
<<addDialogue "Casey" "What the fuck is that?! It’s… disgusting!" "talk">>
<<addDialogue "" "Its mere presence fills you with unease. The hallway seems to warp around it, and a shrill giggle pierces your ears." "description">>
<<addDialogue "" "This can’t be real… This is a nightmare, I must be dreaming." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|bbfight]]">>
<<horizontalEnd>>
<<set $bbfight = 1>>
<<set $bbenemy = true>>
<<timed 1s>>
<<script>>
playSoundDirect('evilbb.mp3');
<</script>>
<</timed>>
<<timed 10s>>
<<script>>
playSoundDirect('evilbb.mp3');
<</script>>
<</timed>><<dialogue "" "A beam of light cuts through the darkness as you move forward, illuminating the hallway with a shaky glow. The light reveals dark stains and marks on the walls, some scrawled into frantic words you can’t quite make out. The wet floor reflects the eerie glow, and a faint chill clings to the space." "description">>
<<horizontalStart>>
<<if $ConsC isnot true>>
<<addDialogue "" "[[Right Door|ConsdoorC]]">>
<<else>>
<<addDialogue "" "[[Examination room|ConsC]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms A|BedroomA]]">>
<<addDialogue "" "[[Corridor - Bedrooms D|BedroomD]]">>
<<horizontalEnd>>
<<if $bbenemy isnot true>>
<<goto "bbenemy">>
<</if>>
<<if $PageC isnot true>>
<<dialogue "" "The light reveals a small examination room. A rusted medical examination table dominates the center, its leather straps hanging loosely from the sides. Against one wall stands a metal cabinet with several drawers partially open, medical instruments gleaming inside. A yellowed patient chart lies abandoned on a small desk in the corner, its pages covered with hastily scribbled notes." "description">>
<<else>>
<<dialogue "" "The light reveals a small examination room. In the center stands a rusted medical table, its leather straps hanging loosely from the sides. Against one of the walls rises a metal cabinet with several drawers left ajar, and a desk in the corner." "description">>
<</if>>
<<horizontalStart>>
<<if $knifeC isnot true>>
<<addDialogue "" "[[Check metal cabinet|metalcabinetC]]">>
<<else>>
<<addDialogue "" "[[Check metal cabinet|metalcabinetC2]]">>
<</if>>
<<addDialogue "" "[[Check desk|checkdeskC]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|CellCorridorC]]" "center">> <<run startAdvancedBattle([
{
type: 'mawling',
hp: 50,
distance: 20,
randomDistance: true,
speed: "3-6",
minMovement: 3,
maxMovement: 6,
damage: 1,
sanityDamage: 6,
DamageIgnore: {
'pistol': 0.1,
'rifle': 0.1,
'shotgun': 0.1,
'melee': 0.1,
'incendiary': 0.1,
'dragon_breath': 0.1,
'tracer': 0.1,
'9mm': 0.1,
'.45': 0.1,
'slugs': 0.1
}
}
], 'VictoryPassage', false, 'CombatEscape', false)>>
<<if window.ClothingSystem.currentClothes === 'jacket'>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<elseif window.ClothingSystem.currentClothes === 'coat'>>
<<setAvatarDirect "caseycoatpistol.png">>
<<else>>
<<setAvatarDirect "caseycoatpistol.png">>
<</if>><<set $RandomDistance = random(10)>>
<<if $RandomDistance gte 0>>
<<run startAdvancedBattle([
{
type: 'mawling',
hp: 50,
distance: 20,
randomDistance: true,
speed: "3-6",
minMovement: 3,
maxMovement: 6,
damage: 1,
sanityDamage: 6,
DamageIgnore: {
'pistol': 0.1,
'rifle': 0.1,
'shotgun': 0.1,
'melee': 0.1,
'incendiary': 0.1,
'dragon_breath': 0.1,
'tracer': 0.1,
'9mm': 0.1,
'.45': 0.1,
'slugs': 0.1
}
},
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<elseif $RandomDistance gt 4>>
<<run startAdvancedBattle([
{
type: 'mawlingStrong',
hp: 70,
distance: 20,
randomDistance: true,
speed: "3-6",
minMovement: 3,
maxMovement: 6,
damage: 2,
sanityDamage: 8,
DamageIgnore: {
'pistol': 0.2,
'rifle': 0.2,
'shotgun': 0.2,
'melee': 0.2,
'incendiary': 0.2,
'dragon_breath': 0.2,
'tracer': 0.2,
'9mm': 0.2,
'.45': 0.2,
'slugs': 0.2
}
}
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<elseif $RandomDistance gt 8>>
<<run startAdvancedBattle([
{
type: 'mawling',
hp: 50,
distance: 20,
randomDistance: true,
speed: "3-8",
minMovement: 3,
maxMovement: 8,
damage: 1,
sanityDamage: 6,
DamageIgnore: {
'pistol': 0.1,
'rifle': 0.1,
'shotgun': 0.1,
'melee': 0.1,
'incendiary': 0.1,
'dragon_breath': 0.1,
'tracer': 0.1,
'9mm': 0.1,
'.45': 0.1,
'slugs': 0.1
}
}
], 'VictoryPassage', true, 'CombatEscape', false)>>
<</if>>
<<if window.ClothingSystem.currentClothes === 'jacket'>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<elseif window.ClothingSystem.currentClothes === 'coat'>>
<<setAvatarDirect "caseycoatpistol.png">>
<<else>>
<<setAvatarDirect "caseycoatpistol.png">>
<</if>><<dialogue "" "The final shot rings out, and the demonic infant collapses, its crimson glow fading into ash. The nursery falls silent, the oppressive weight lifting from your chest. Reality snaps back into place—colors seem sharper, the air lighter. You stare at the scorched remains, a faint unease lingering. It’s gone, but the memory of its twisted giggle claws at your mind. Whatever it was, it’s no longer a threat. You holster your weapon and walk away, the nursery’s shadows retreating behind you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take calming pills|Tpc|?inventoryFull]]">>
<<addDialogue "" "[[Don't take calming pills|CellCorridorC]]">>
<<horizontalEnd>>
<<set $ActiveBB = true>>
<<set $bbfight = 2>>
<<set $bbenemy = true>>
<<dialogue "" "You put the pills in your backpack." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|CellCorridorC]]">>
<<horizontalEnd>>
<<set $randompills = random(10)>>
<<if $randompills lte 5>>
<<script>>window.addItemFromDatabase('pills', 2);<</script>>
<</if>>
<<if $randompills gt 6>>
<<script>>window.addItemFromDatabase('pills', 4);<</script>>
<</if>>
<<dialogue "" "You approach the metal cabinet. As you open one of the drawers, the screech of rusted metal echoes through the room. Inside, scattered among the decaying contents, lie several rusted surgical tools. Amid the corroded instruments, you spot a knife that appears to be in relatively good condition, its blade still sharp and mostly untouched by time." "description">>
<<addImage "img/events/cabinetc.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take knife|knifeC|?inventoryFull]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|ConsC]]" "center">>
<<dialogue "" "You approach the metal cabinet. As you pull open one of the drawers, the screech of rusted metal echoes through the room. Inside, you find scattered surgical tools, all corroded and broken. Nothing here seems useful." "description">>
<<addImage "img/events/cabinetc.png">>
<<addDialoguePos "" "[[Back|ConsC]]" "center">>
<<if $PageC isnot true>>
<<dialogue "" "You approach the desk, covered in dust and dry white stains. Among crumpled papers, a yellowed sheet stands out on the surface. It's covered in shaky scribbles, as if someone had written it during a crisis or in a moment of desperation." "description">>
<<else>>
<<dialogue "" "The desk is made of old metal, with chipped varnish and burn marks in one corner. It's covered with a thick layer of dust, and dry white stains are scattered across the surface. The drawers are closed, though one seems stuck, as if someone had tried to force it open." "description">>
<</if>>
<<addImage "img/events/deskc.png">>
<<horizontalStart>>
<<addDialogue "" "[[Open the drawer|cajonC]]">>
<<if $PageC isnot true>>
<<addDialogue "" "[[Take the papers|PageC]]">>
<</if>>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|ConsC]]" "center">>
<<dialogue "" "You grab the rusted knife and you put it in your backpack." "description">>
<<addDialogue "Casey" "Well... Better than nothing." "talk">>
<<addImage "img/events/cabinetc.png">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|ConsC]]">>
<<horizontalEnd>>
<<set $knifeC = true>>
<<script>>
const itemKey = 'rustedknife';
const itemName = 'Rusted Knife';
const itemDescription = 'Its a wide-bladed kitchen knife, clearly forgotten long ago. The wooden handle is cracked, damp to the touch.';
const itemValue = 90;
const weaponDamage = 14;
const imagePath = 'img/items/weapons/rustedknife.png';
// Add to Item Database
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "tool", // Melee weapons use "tool" category
type: "weapon", // Must be "weapon"
weaponType: "melee", // Critical: defines as melee weapon
damage: weaponDamage, // Base damage
image: imagePath,
stackable: false,
maxStack: 1,
value: itemValue,
weight: 0.5, // Lighter than crowbar
isSellable: true
};
// Add to Shop System
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 3,
img: imagePath
};
// Add to Inventory with Notification
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
// Refresh Shop UI
window.ShopSystem.populateSellItems();
<</script>>
<<if $batteriesC isnot true>>
<<dialogue "" "You rummage through the drawer, moving aside dust and ash. All you find are broken objects in poor condition. However, at the back, in a sealed package, you find 4 cheap batteries in perfect condition. They seem brand new, ready to be used." "description">>
<<addImage "img/events/deskc.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take batteries|cajonbatteriesC|?!canPickupBattery]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "You rummage through the drawer, shifting the dust and ash. All you find are broken objects in poor condition. Nothing seems useful." "description">>
<<addImage "img/events/deskc.png">>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|ConsC]]" "center">>
<<dialogue "" "You grab the page and begin to read." "description">>
<<addImageV "img/documents/karlsen_note_day1.png">>
<<spacing "20px">>
<<addDialoguePos "" "[[Continue|ConsC]]" "center">>
<<script>>
window.addDocumentWithNotification(
"karlsen_note_day1",
"Diary Note",
"Torn and stained note titled 'Day 1 of the incubation protocol' by Dr. Karlsen.",
"",
"close_photo",
"📋",
{
imagePath: "img/documents/karlsen_note_day1.png",
location: "Found inside a room at the Charles Francis Psychiatric Hospital",
photographer: "Doctor Karlsen",
frontDescription: "A torn note from Dr. Karlsen's diary. It appears to be a journal entry or research log related to the experiments conducted within the hospital."
}
);
<</script>>
<<script>>
playSoundDirect('page.mp3');
<</script>>
<<set $PageC = true>>
<<dialogue "" "You pick up the batteries." "description">>
<<addImage "img/events/deskc.png">>
<<addDialoguePos "" "[[Back|ConsC]]" "center">>
<<addItem "battery" 4>>
<<set $batteriesC = true>><<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Open|RedE]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|CellCorridorD]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "RedELight">>
<<else>>
<<dialogue "" "You step into a vast room consumed by a suffocating darkness. The air feels heavier here, as if the shadows themselves are pressing in. Without your flashlight, the world vanishes — nothing exists beyond the void in front of you." "description">>
<<addDialoguePos "" "[[Exit|CellCorridorD]]" "center">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<set $RedE = true>>
<<dialogue "" "The patient lounge is still, frozen in time. Pale moonlight filters through a cracked window, casting long shadows across worn-out armchairs and faded wallpaper. Dust floats lazily in the air, stirred only by your presence. An old television set sits in the corner, its curved screen reflecting the moonlight in a dull, ghostly shimmer. The furniture is arranged in a loose circle, as if the room once hosted quiet conversations or forgotten group sessions. Now, only silence remains, heavy and undisturbed." "description">>
<<horizontalStart>>
<<if $LNurseMeet is true && $LNurseDeath isnot true && $NurseWithBruno isnot true>>
<<addDialogue "" "[[Talk to the nurse|NurseTalk]]">>
<</if>>
<<if $StorageDoor isnot true>>
<<addDialogue "" "[[Check storage door|storagedoor2]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<if $StorageDoor2 is true>>
<<addDialogue "" "[[Storage room|Storage2]]">>
<</if>>
<<addDialogue "" "[[Corridor - Bedrooms A|CellCorridorD]]">>
<<addDialogue "" "[[Go to playroom|LRcorridor]]">>
<<horizontalEnd>>
<<script>>
window.setLighting(80);
<</script>>
<<if $LNurseMeet isnot true && $LNurseDeath isnot true>>
<<goto "LNurseMeet">>
<</if>><<dialogue "" "The hallway is narrow, swallowed by thick darkness. Only the beam of your flashlight cuts through the shadows, revealing fragments of peeling walls that look ready to collapse. The cracked linoleum crunches beneath your boots. On either side, rusted metal doors stand at uneven intervals, like forgotten sentinels." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" "Perfect spot to vanish without a trace... just great." "talk">>
<</switch>>
<<horizontalStart>>
<<if $RedE isnot true>>
<<addDialogue "" "[[Left Door|RedEdoor]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<if $RedE is true>>
<<addDialogue "" "[[Red elevators|RedE]]">>
<</if>>
<<addDialogue "" "[[Corridor - Bedrooms A|BedroomA]]">>
<<addDialogue "" "[[Livingroom]]">>
<<horizontalEnd>>
<<dialogue "" "You step into a vast room swallowed by darkness. Your flashlight cuts through the shadows, revealing cracked walls and broken tiles scattered across the floor. At the far end, the beam lands on a pair of red elevator doors. Despite the decayed surroundings, the doors look almost pristine — no dents, no rust, almost new. But there's no power. No lights. Everything is still, as if waiting." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check elevators|rede]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|CellCorridorD]]" "center">>
<<dialogue "" "You stop in front of the red elevators, their metal doors gleaming under your flashlight, pristine despite the 15 years of abandonment in the psychiatric hospital. The vivid red stands out in the gloom. You run your fingers over the metal, smooth, no trace of rust. The panel buttons are dark, lifeless." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" "As expected..." "talk">>
<<addDialogue "" "You scan the frame, looking for anything out of place: a wire, a mark. Nothing." "description">>
<<addDialogue "" "This doesn’t add up. Fifteen years, and they look brand new. Someone’s been here, but without power, what’s the point?" "thoughts">>
<<addDialogue "Casey" "Come on, Casey, think. No electricity, these things aren’t moving. But I’m not buying they’re just for show. There’s gotta be a maintenance room with a generator somewhere in this building." "talk">>
<</switch>>
<<horizontalStart>>
<<if $RedeInspect isnot true>>
<<addDialogue "" "[[Inspect elevators|redecheck]]">>
<</if>>
<<addDialogue "" "[[Call elevators|redecall]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|RedE]]" "center">>
<<dialogue "" "You crouch, shining your light on the floor. The linoleum is cracked, but the dust in front of the doors is thinner, as if someone’s been through recently. You stand and press the open button. The buttons are cold, unworn. Frowning, you inspect the panel closer, noticing a small slot with a fresh scratch, like something was inserted." "description">>
<<addDialogue "" "Someone used this, and not long ago. If I want this elevator to work its magic, I need to restore power. The maintenance room’s gotta be close, probably in the basement or some forgotten wing." "thoughts">>
<<addDialogue "Casey" "Alright, Red, you’re not talking yet. But if I find the main switch, you’ll sing. Nobody keeps this so perfect for no reason." "talk">>
<<addDialogue "" "You sweep the lobby with your flashlight, searching for signs of a hallway or door leading to the maintenance room, or any clue to guide you there. Nothing stands out—the remaining signs and wall markers are too worn to read." "description">>
<<addDialogue "" "The maintenance room is my next move. There’s gotta be a building map or a sign somewhere." "thoughts">>
<<addDialogue "Casey" "Time to find the heart of this place. If there’s a generator, I’ll track it down. And then, White..." "talk">>
<<addDialogue "" "He and I are gonna have a serious talk." "thoughts">>
<<addDialoguePos "" "[[Back|RedE]]" "center">>
<<set $RedeInspect = true>>
<<if $PowerRestoreQuest isnot true>>
<<set $PowerRestoreQuest = true>>
<<script>>
addQuestWithStages(
"Power Restoration",
"The hospital is shrouded in complete darkness. Your first priority is to locate the maintenance room, though restoring power won't be a simple task—you'll need to figure out what went wrong (No more content for now).",
[
"Find the maintenance room. There might be tools or clues inside.",
"Find the first fuse. It could be hidden somewhere in the lower levels.",
"Find the second fuse. Check staff-only areas or locked storage rooms.",
"Insert the fuses and restore the power from the generator room."
],
"📋",
"main",
"restore_power", // Custom ID
"img/quest.png" // Quest image
);
// Add stage images so completion notifications show the quest image
if (window.questSystem && window.questSystem.quests["restore_power"]) {
window.questSystem.quests["restore_power"].stageImages = [
"img/quest.png", // Stage 1
"img/quest.png", // Stage 2
"img/quest.png", // Stage 3
"img/quest.png" // Stage 4
];
}
State.variables.powerQuestId = "restore_power";
<</script>>
<</if>><<dialogue "" "You stand before the red elevators, their glossy doors catching the faint glow of your flashlight. With a steady hand, you reach for the call button, its surface cold and smooth under your thumb. You press it, half-expecting nothing, but a faint click echoes in the silent lobby. No lights flicker, no hum of machinery follows—just an oppressive quiel." "description">>
<<addDialogue "" "No power, no surprise. But that click felt too clean, too deliberate. Someone’s kept this thing ready, even if it’s not moving now." "thoughts">>
<<addDialogue "Casey" "Come on, reddie, give me something. You’re hiding more than you let on, aren’t you?" "talk">>
<<addDialogue "" "The elevator doesn't move." "description">>
<<addDialoguePos "" "[[Back|RedE]]" "center">>
<<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Open|Storage2]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Livingroom]]" "center">>
<<dialogue "" "The storage room is narrow and cluttered. The shelves, old and bent under the weight, leave little room to move. Stacked cardboard boxes block part of the way, and some have collapsed, spilling their contents onto the floor. Cobwebs and dust have gathered in the corners. Against one of the walls, there is a small locker with a rusty padlock, its surface scratched and worn from years of neglect." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check the small locker|smalllocker]]">>
<<addDialogue "" "[[Check the boxes|boxes2]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|Livingroom]]" "center">>
<<set $StorageDoor2 = true>>
<<if window.gameState.lanternOn>>
<<goto "LRcorridorLight">>
<<else>>
<<dialogue "" "The hallway leading from the lounge to the recreational room is swallowed in complete darkness. The air is thick, carrying the stale scent of mold, dust, and old disinfectant." "description">>
<<horizontalStart>>
<<if $St3 isnot true>>
<<addDialogue "" "[[Left Door|storagedoor3]]">>
<<else>>
<<addDialogue "" "[[Storage|Storage3]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Livingroom]]">>
<<addDialogue "" "[[Playroom]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<script>>
window.setLighting(50);
<</script>><<if $SmallTaquillaOpen isnot true>>
<<dialogue "" "As you approach the small locker, you notice its surface is covered with scratches and rust stains. The lock securing it is in good condition, though it looks quite old. The metal shines slightly despite its age, and the lock appears firm and sturdy, with no signs of wear." "description">>
<<addImage "img/events/smalltaquilla.png">>
<<horizontalStart>>
<<addDialogue "" "[[Try to pick the lock|smallLocckerlp]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "The locker door is open, revealing its empty interior." "description">>
<<addImage "img/events/smalltaquillaopen.png">>
<<horizontalStart>>
<<addDialogue "" "[[Check locker|smalllocker2]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Storage2]]" "center">>
<<if $pilas2 isnot true>>
<<dialogue "" "You search through the boxes and find three batteries. They're a bit dusty, but still sealed in their packaging. They could come in handy later." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" "Well... it's not much, but at least I won't be left in the dark for too long." "talk">>
<</switch>>
<<addImage "img/events/boxes1.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take batteries|pilas2|?!canPickupBattery]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Storage2]]" "center">>
<<else>>
<<goto "nopilas2">>
<</if>>
<<dialogue "" "You put away the batteries." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Storage2]]">>
<<horizontalEnd>>
<<addItem "battery" 3>>
<<set $pilas2 = true>>
<<dialogue "" "You search through the boxes, but there’s nothing left. The shelves are empty, and the floor is bare. It seems everything has already been taken or vanished." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" "Looks like not everything grows back or reappears. Weird, huh?" "talk">>
<</switch>>
<<addDialoguePos "" "[[Back|Storage2]]" "center">>
<<if $smallLockerbandages isnot true && $smallLockerCard isnot true>>
<<dialogue "" "Inside the locker, you find a small pack of bandages and a Level A magnetic keycard hanging from a hook." "description">>
<<elseif $smallLockerbandages is true && $smallLockerCard isnot true>>
<<dialogue "" "A Level A magnetic keycard hangs from a hook inside the locker." "description">>
<<elseif $smallLockerbandages isnot true && $smallLockerCard is true>>
<<dialogue "" "A small pack of bandages rests inside the locker." "description">>
<<else>>
<<dialogue "" "The locker is empty." "description">>
<</if>>
<<addImage "img/events/smalltaquillaopen.png">>
<<if $smallLockerbandages isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Take bandages|taquillaVendas|?!canPickupBandages]]">>
<<horizontalEnd>>
<</if>>
<<if $smallLockerCard isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Take level A magnetic card|taquillaCard|?inventoryFull]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Storage2]]" "center">>
<<set $SmallTaquillaOpen = true>><<dialogue "" "The door is locked." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Try to pick the lock|storagedoor3Lock]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|LRcorridor]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "Storage3Light">>
<<else>>
<<dialogue "" "The room is enveloped in total darkness. The space feels vast, but the lack of light causes everything to vanish into the shadows. There's no way to make out the outlines of objects, only a sense of emptiness, as if everything is waiting." "description">>
<<addDialoguePos "" "[[Back|LRcorridor]]" "center">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<if window.gameState.lanternOn>>
<<goto "PlayroomLight">>
<<else>>
<<dialogue "" "It is impossible to distinguish anything. Everything is shrouded in absolute darkness, as if the eyes had been permanently closed and the sense of sight had ceased to exist. Every attempt to focus on something, to find any hint of shape, color, or movement, fades into nothingness." "description">>
<<if $playdoor isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check door|playdoor]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<if $playdoor is true>>
<<addDialogue "" "[[Sex dungeon|Sexdungeon]]">>
<</if>>
<<addDialogue "" "[[Go to livingroom|LRcorridor]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<dialogue "" "The hallway leading from the lounge to the recreational room is swallowed in complete darkness. Only the beam of your flashlight reveals cracked walls and faded posters with unnaturally cheerful cartoons. Beneath your boots, the linoleum creaks—sticky in places, as if it had soaked up more stories than anyone would care to hear. The doors lining the corridor are shut tight, some missing handles, and a row of rusted benches runs along one wall, waiting for patients who never returned. The air is thick, carrying the stale scent of mold, dust, and old disinfectant." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" " If this is the road to joy... I'd rather turn back." "talk">>
<</switch>>
<<horizontalStart>>
<<if $St3 isnot true>>
<<addDialogue "" "[[Left Door|storagedoor3]]">>
<<else>>
<<addDialogue "" "[[Storage|Storage3]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Livingroom]]">>
<<addDialogue "" "[[Playroom]]">>
<<horizontalEnd>>
<<dialogue "" "The playroom is spacious. The walls, once in pastel tones, have now lost their original color, turning into a sickly hue that distorts the vision. On them hang some drawings that survived the passage of time, looking childish, yet their lines are irregular, trembling, and the smiles drawn are grotesque. The floor is covered with broken and scattered toys: dolls without eyes, puzzle pieces that no longer fit, letter dice stained from use. In the center of the room, a small table, accompanied by disproportionate chairs, seems to have been abandoned in the middle of an interrupted activity, as if the room had been trapped in time." "description">>
<<if $playdoor isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check door|playdoor]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<if $playdoor is true>>
<<addDialogue "" "[[Sex dungeon|Sexdungeon]]">>
<</if>>
<<addDialogue "" "[[Go to livingroom|LRcorridor]]">>
<<horizontalEnd>>
<<dialogue "" "You successfully pick the lock, and the door opens." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|Storage3]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|LRcorridor]]" "center">>
<<set $St3 = true>>
<<dialogue "" "The flashlight reveals shelves piled with boxes in disarray, some open, others about to fall. Dust floats in the air, visible in the beam of light, while old sacks are piled in a corner. The walls, covered in stains and moisture, seem ready to crumble. A rusty cart lies forgotten in the center, while some shelves sag under the weight of their contents. Darkness still lingers in the farthest corners." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check crates|crates3L]]">>
<<addDialogue "" "[[Check cart|cart3L]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|LRcorridor]]" "center">>
<<if $l3vendas isnot true>>
<<dialogue "" "Upon closer inspection, you find some open, while others remain closed, their contents unknown. In one box filled with old rags and papers, you discover a package of bandages." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take bandages|vendas3L|?!canPickupBandages]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Storage3]]" "center">>
<<else>>
<<dialogue "" "The crates are empty." "description">>
<<addDialoguePos "" "[[Back|Storage3]]" "center">>
<</if>>
<<dialogue "" "Inside the cart, among pieces of metal and dust, you find a small package of pills. Next to it, there's a glass jar with a cloudy liquid, which could be some sort of solution or remedy. At the bottom, hidden beneath a torn cloth, you find an old notebook. One page is torn but still legible, while the rest is too faded and damaged to read." "description">>
<<switch visited()>>
<<case 1>>
<<dialogue "" "The cart is rusty and covered in dust. Its wheels are stuck, and inside are metal scraps, torn fabric, and forgotten objects. The worn paint is barely visible under the accumulated dirt." "description">>
<</switch>>
<<horizontalStart>>
<<if $pills3L isnot true>>
<<addDialogue "" "[[Take pills|pills3L|?!canPickupPills]]">>
<</if>>
<<if $liquid isnot true>>
<<addDialogue "" "[[Take cloudy liquid|liquid3L|?inventoryFull]]">>
<</if>>
<<if $libro isnot true>>
<<addDialogue "" "[[Take page|libro3L]]">>
<</if>>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Storage3]]" "center">>
<<dialogue "" "You take the pills and, without giving it much thought, stash them in your backpack." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Back|cart3L]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('pills', 5);<</script>>
<<set $pills3L = true>>
<<dialogue "" "You hold the jar up to your flashlight. The liquid inside is thick, a murky brown that looks like it’s been rotting for years." "description">>
<<addDialogue "Casey" "No idea what the hell this is… but it sure doesn’t smell like medicine." "talk">>
<<addDialogue "" "Its coagulated texture unsettles you. But you stash it in your backpack without giving it another thought." "description">>
<<addDialoguePos "" "[[Back|cart3L]]" "center">>
<<set $liquid = true>>
<<script>>
const itemKey = 'white liquid';
const itemName = 'Cloudy liquid';
const itemDescription = 'A bottle containing an unknown white liquid. It swirls slowly when tilted, with an oddly thick consistency. The glass feels strangely warm to the touch, and there\'s no label to hint at its origins or purpose.';
const itemValue = 100;
const imagePath = `img/items/special/whiteliquid.png`;
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "special",
image: imagePath,
stackable: true,
maxStack: 1,
value: itemValue,
weight: 0.5,
isSellable: true,
};
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 1,
img: imagePath
};
//Adding item ro inventory
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
window.ShopSystem.populateSellItems();
<</script>><<dialogue "" "You grab the page and begin to read." "description">>
<div id="note"></div>
<<addImageV "img/documents/karlsen_note_day10.png">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|cart3L]]">>
<<horizontalEnd>>
<<script>>
window.addDocumentWithNotification(
"karlsen_note_day10",
"Diary Note",
"Torn and stained note titled 'Day 10 of the incubation protocol' by Dr. Karlsen.",
"",
"close_photo",
"📋",
{
imagePath: "img/documents/karlsen_note_day10.png",
location: "Found inside a room at the Charles Francis Psychiatric Hospital",
photographer: "Dr. Karlsen",
frontDescription: `A torn note from Dr. Karlsen's diary. It appears to be a journal entry or research log related to the experiments conducted within the hospital.`
}
);
<</script>>
<<script>>
playSoundDirect('page.mp3');
<</script>>
<<set $libro = true>>
<<dialogue "" "You grab a pack of bandages and slip it into your backpack." "description">>
<<addDialoguePos "" "[[Back|Storage3]]" "center">>
<<script>>window.addItemFromDatabase('bandages', 3);<</script>>
<<set $l3vendas = true>>
<<dialogue "" "You approach the edge of the hole, noticing that its size is just right for you to descend with ease. The cold air rises from below, damp and foul-smelling." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Descend|Descend]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Pasaduci]]" "center">><<dialogue "" "The room is dimly lit, with cracked walls. The ceiling shows signs of decay, with loose panels and hanging cables. In the center of the floor, the hole leading to the basement remains." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Inspect Hole|Bujero3]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|BedroomC]]" "center">>
<<set $Pasaduci = true>>
<<if $bujero isnot true>>
<<goto "Bujero">>
<</if>>
<<dialogue "" "You hit the ground hard. The fall knocks the breath out of you, but nothing seems broken. As you slowly get up, the dim glint of fractured reflections surrounds you. Dozens—no, hundreds—of mirrors cover the walls, cracked and stained, stretching the room into a disorienting labyrinth of yourself. The door ahead is slightly ajar, the only thing in here that isn't watching you." "description">>
<<addDialogue "Casey" " What the hell is a room like this doing in a psychiatric hospital? Who would build such a twisted place?" "talk">>
<<addDialogue "" "This doesn’t make any sense... but maybe that’s exactly the point." "thoughts">>
<<addDialogue "Casey" " I have to keep moving..." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Mirrors]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeHealth(10)
<</script>>
<<set $Fase1 = true>>
<<set $inside = false>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('rottenwalls.mp3', 4000);
}, 1000);
<</script>><<dialogue "" "You slide the flashlight across the room, taking slow steps and keeping a careful eye. The walls are covered in cracks and dampness; the wallpaper hangs like old skin. An old, rusted gurney lies in the center of the room, its legs twisted and its padding torn. To one side, a medical monitor, covered in dust, briefly reflects the beam of light before returning your own distorted reflection. The beam slides toward the floor. Broken tiles, dry stains, loose cables. And then you see it. In the farthest corner, the linoleum sinks inward. A crack... no, a hole. Wide, uneven, and deep. As if something had torn through the floor from below." "description">>
<<addDialogue "" "What the hell did this?" "thoughts">>
<<addDialogue "Casey" "Great... nothing suspicious about a hole leading straight to hell." "talk">>
<<addDialogue "" "You approach cautiously, crouching by the edge as you direct the flashlight into the abyss. The light moves slowly, barely revealing twisted, rusted pipes and fragments of fallen concrete lost in the darkness. From below rises a cold, dense draft, carrying the penetrating smell of mold and earth, and something else you can’t quite identify." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Inspect Hole|Bujero2]]">>
<<horizontalEnd>>
<<dialogue "" "You crouch closer to the edge. The floor creaks, as if everything is about to give way under your weight. Looking more closely, you can see that the edge of the hole is worn, likely from the passage of time. The flashlight's beam illuminates the emptiness below, revealing the basement floor. Through the darkness, you can make out some cracked concrete slabs, as if something or someone caused the damage. The fall doesn’t seem too deep, but the dense, cold air rising from below makes you think this is not a place you want to explore without a good reason." "description">>
<<addDialogue "Casey" " How... what did this?" "talk">>
<<addDialogue "" " It doesn’t make sense... probably the moisture and the passage of time... I don’t know if I’ll find an exit, or if I’m walking straight into something much worse, but I don’t have many options." "description">>
<<addDialogue "Casey" " Well, it’s not like I have a map of this place... If this leads to the basement, it might be the only way forward." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Descend|Descend]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Pasaduci]]" "center">>
<<set $bujero = true>>
<<if window.gameState.lanternOn>>
<<goto "MirrorsLight">>
<<else>>
<<dialogue "" "The darkness is thick. Just enough to reveal the strange: dozens, maybe hundreds of mirrors cover the walls. Many are cracked, others completely shattered. They reflect you from every angle... staring back at you a thousand times." "description">>
<<if $sanity > 60>>
<<addDialogue "" "You only see yourself, over and over. Your silhouette repeats on every surface. You are alone." "description">>
<<addDialogue "Casey" "This was... a mirror therapy room? What kind of treatment did they do here...?" "talk">>
<<elseif $sanity >= 30 and $sanity <= 60>>
<<addDialogue "" "Some mirrors show things that aren’t in the room. In one, you see a woman standing with her back turned, still. She’s watching you. You blink… and she’s gone. Your breathing quickens. The air feels heavy." "description">>
<<elseif $sanity < 30>>
<<addDialogue "" "Your reflections don’t move like you do. One of your copies smiles cruelly... but you don’t. A soft crack makes you look closer: a crack snakes slowly across the glass in front of you. But you didn’t touch it." "description">>
<<addDialogue "" "That wasn’t me. That wasn’t me. That wasn’t me..." "thoughts">>
<<addDialogue "Casey" "I have to get out of here..." "talk">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Examine a mirror|RoomMirror]]">>
<<if $InpectRoom isnot true>>
<<addDialogue "" "[[Examine the room|SearchRoomMirror]]">>
<<else>>
<<addDialogue "" "[[Inspect the hole|HoleTecho]]">>
<</if>>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit to the corridor|MirrorCorridor]]" "center">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<if $mirrorDemon is true>>
<<goto "Mirrors2">>
<</if>>
<<script>>
window.setLighting(60);
<</script>><<dialogue "" "You approach one of the mirrors. Its surface is covered with dust and deep cracks that distort your reflection." "description">>
<<if $sanity > 50>>
<<addDialogue "" "Your reflection looks normal, though fragmented by the cracks. Nothing unusual, just an old, broken mirror." "description">>
<<elseif $sanity >= 20 and $sanity <= 50>>
<<addDialogue "" "The reflection flickers, and for a moment it seems like the image shows something else, something you're not sure you actually saw. " "description">>
<<addDialogue "" "Maybe it was just my imagination..." "thoughts">>
<<else>>
<<addDialogue "" "Your reflection smiles with a cruel smirk that doesn’t match your expression. The glass seems to vibrate slightly, as if reacting to something unseen, and an unsettling tension coils in your chest." "description">>
<<addDialogue "" "I shouldn’t be seeing this..." "thoughts">>
<<addDialogue "Casey" "This can’t be happening...!" "talk">>
<</if>>
<<addImageV "img/events/bigmirror.png">>
<<horizontalStart>>
<<if $BreakMirror isnot true>>
<<addDialogue "" "[[Break the mirror|BreakMirrorEvent]]">>
<</if>>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Mirrors]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "SearchRoomMirrorLight">>
<<else>>
<<dialogue "" "You try to explore the room, but the darkness keeps you from seeing anything." "description">>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Mirrors]]" "center">>
<</if>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "You look up at the hole in the ceiling, right where you fell. From below, you can see the jagged edge of the plaster and the broken wood surrounding it. Suddenly, you see a dark silhouette leaning in, looking down directly at you, but the figure disappears as quickly as it appeared." "description">>
<<addDialogue "Casey" "Who... was that? Who are you?" "talk">>
<<addDialogue "" "Shit! Is someone following me?" "thoughts">>
<<default>>
<<addDialogue "" "You look up at the hole in the ceiling. You only see the jagged edge of the plaster and the broken wood surrounding it, bathed in the faint light of your flashlight. There’s no sign of life or movement, just the heavy silence of the building. But the feeling of being watched doesn’t go away." "description">>
<</switch>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Mirrors]]" "center">>
<<set $InpectRoom = true>><<if window.gameState.lanternOn>>
<<goto "Mirrors2Light">>
<<else>>
<<dialogue "" "The room is quiet. The mirrors no longer twist or distort reality. They reflect your figure accurately, with no foreign gestures or out-of-place movements. Despite the calm, the air remains heavy and cold." "description">>
<<horizontalStart>>
<<if $InpectRoom isnot true>>
<<addDialogue "" "[[Examine the room|SearchRoomMirror]]">>
<<else>>
<<addDialogue "" "[[Inspect the hole|HoleTecho]]">>
<</if>>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit to the corridor|MirrorCorridor]]" "center">>
<</if>>
<<script>>
window.setLighting(60);
<</script>><<dialogue "" "The flashlight barely manages to illuminate the place, but enough for you to notice the strange sight: dozens, perhaps hundreds of mirrors cover the walls. Many are cracked, others completely shattered. They reflect your image from every angle... staring back at you a thousand times." "description">>
<<if $sanity > 60>>
<<addDialogue "" "You only see yourself, over and over. Your silhouette repeats on every surface. You are alone." "description">>
<<addDialogue "Casey" "This was... a mirror therapy room? What kind of treatment did they do here...?" "talk">>
<<elseif $sanity >= 30 and $sanity <= 60>>
<<addDialogue "" "Some mirrors show things that aren’t in the room. In one, you see a woman standing with her back turned, still. She’s watching you. You blink… and she’s gone. Your breathing quickens. The air feels heavy." "description">>
<<elseif $sanity < 30>>
<<addDialogue "" "Your reflections don’t move like you do. One of your copies smiles cruelly... but you don’t. A soft crack makes you look closer: a crack snakes slowly across the glass in front of you. But you didn’t touch it." "description">>
<<addDialogue "" "That wasn’t me. That wasn’t me. That wasn’t me..." "thoughts">>
<<addDialogue "Casey" "I have to get out of here..." "talk">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Examine a mirror|RoomMirror]]">>
<<if $InpectRoom isnot true>>
<<addDialogue "" "[[Examine the room|SearchRoomMirror]]">>
<<else>>
<<addDialogue "" "[[Inspect the hole|HoleTecho]]">>
<</if>>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit to corridor|MirrorCorridor]]" "center">>
<<if $mirrorDemon is true>>
<<goto "Mirrors2">>
<</if>>
<<dialogue "" "The room slowly reveals itself: walls covered by dozens, maybe hundreds, of mirrors. Some are cracked, others shattered, reflecting your image from every possible angle. The flickering light makes the reflections dance, twisting your silhouette into strange shapes. You move carefully, the flashlight’s glow barely containing the shadows creeping in the corners. Every glance feels like dozens of eyes are watching you at once. Above, you notice a large hole in the ceiling, letting in a faint shaft of pale moonlight that barely illuminates the dusty air." "description">>
<<addDialogue "" "You can't shake the feeling that something lurks just beyond the glass, waiting for you to turn your back. Your breath grows heavy and cold pins prick your skin." "description">>
<<addDialogue "Casey" "This place... it’s like a twisted gallery of broken reflections. What kind of therapy could they have done here?" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Inspect the hole|HoleTecho]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Mirrors]]" "center">>
<<dialogue "" "The room is quiet. The mirrors no longer twist or distort reality. They reflect your figure accurately, with no foreign gestures or out-of-place movements. Despite the calm, the air remains heavy and cold." "description">>
<<horizontalStart>>
<<if $InpectRoom isnot true>>
<<addDialogue "" "[[Examine the room|SearchRoomMirror]]">>
<<else>>
<<addDialogue "" "[[Inspect the hole|HoleTecho]]">>
<</if>>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit to the corridor|MirrorCorridor]]" "center">>
<<dialogue "" "The hallway stretches out before you like an endless tunnel; you can either turn back or keep moving forward. A couple of locked doors line the walls." "description">>
<<horizontalStart>>
<<addDialogue"" "[[Mirror's room|Mirrors]]" "">>
<<if $fork isnot true>>
<<addDialogue "" "[[Go ahead|MirrorsCorridor2]]">>
<<else>>
<<addDialogue"" "[[Head to the fork|MirrorsCorridor2]]">>
<</if>>
<<horizontalEnd>>
<<dialogue "" "A bed appears in the reflected room, and your reflection slowly climbs onto it. The reflection in the mirror begins to touch itself deliberately, with slow, provocative movements. You stand frozen, unable to look away from the disturbing scene unfolding before you." "description">>
<<addVideo "media/casey/fap.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "Your reflection’s masturbation becomes more intense, almost frantic, as if consumed by a dark, desperate need." "description">>
<<addVideo "media/casey/fap2.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "What... what is happening? This can’t be real..." "thoughts">>
<<addDialogue "" "The reflection’s movements grow more intense, approaching a climax." "description">>
<<addVideo "media/casey/fap3.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "But just before it finishes, it suddenly stops. It turns to meet your eyes, a satisfied, almost triumphant smile curling on its lips." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|BreakMirrorEvent3]]">>
<<horizontalEnd>>
<<unlockVideo 1 9>>
<<unlockVideo 1 10>>
<<unlockVideo 1 11>> <<dialogue "" "You strike the mirror with your weapon, pouring all your fury into it. The glass shatters into countless fragments that crash to the floor with a loud crash. But before you can step back, the pieces begin to tremble. One by one, they rise into the air, floating as if time itself were rewinding. Within seconds, the mirror is whole again—flawless, without a single crack. Your reflection stares back at you, unchanged… or maybe smiling just a little more than before. From somewhere deep within the room, a chilling, demonic female laughter echoes." "description">>
<<addDialogue "Casey" "That's not normal... none of this is..." "talk">>
<<addDialogue "" "Your reflection meets your gaze, first with cold, burning fury in its eyes. But then, slowly, its expression shifts: the fury fades away, replaced by an unsettling smile. Behind it, a normal hotel room appears in the reflection, calm and unremarkable— a stark contrast to the room you’re in. Deliberately and slowly, it begins to undress. You stand frozen, stunned, unable to believe what you’re seeing." "description">>
<<addDialogue "Casey" "What the f..?" "talk">>
<<addVideo "media/casey/undressing.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Continue watching|BreakMirrorEvent2]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Stop|stop watching]]" "center">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<<timed 1s>>
<<script>>
playSoundDirect('windowcrash.mp3');
<</script>>
<</timed>>
<<unlockVideo 1 8>> <<run startAdvancedBattle([
{
type: 'kikimora',
hp: 120,
distance: 10,
randomDistance: true,
speed: "5-8",
minMovement: 5,
maxMovement: 8,
damage: 15,
DamageIgnore: {
'pistol': 0.6,
'rifle': 0.4,
'shotgun': 0.0,
'melee': 1,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.6,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<if window.ClothingSystem.currentClothes === 'jacket'>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<elseif window.ClothingSystem.currentClothes === 'coat'>>
<<setAvatarDirect "caseycoatpistol.png">>
<<else>>
<<setAvatarDirect "caseycoatpistol.png">>
<</if>>
<<script>>
// Special item example
const itemKey = 'luckycharm';
const itemName = 'Lucky Charm';
const itemDescription = 'A small trinket that brings good fortune';
const itemValue = 100;
const imagePath = `img/items/special/${itemKey}.png`;
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "special",
image: imagePath,
stackable: false,
maxStack: 1,
value: itemValue,
weight: 0.1,
isSellable: true,
sanityRestore: 10
};
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 1,
img: imagePath
};
//Adding item ro inventory
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
window.ShopSystem.populateSellItems();
<</script>> <<script>>
const itemKey = 'knife';
const itemName = 'Rusted Knife';
const itemDescription = 'Its a wide-bladed kitchen knife, clearly forgotten long ago. The wooden handle is cracked, damp to the touch.';
const itemValue = 75;
const weaponDamage = 8;
const imagePath = 'img/items/weapons/rustedknife.png';
// Add to Item Database
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "tool", // Melee weapons use "tool" category
type: "weapon", // Must be "weapon"
weaponType: "melee", // Critical: defines as melee weapon
damage: weaponDamage, // Base damage
image: imagePath,
stackable: false,
maxStack: 1,
value: itemValue,
weight: 0.5, // Lighter than crowbar
isSellable: true
};
// Add to Shop System
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 3,
img: imagePath
};
// Add to Inventory with Notification
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
// Refresh Shop UI
window.ShopSystem.populateSellItems();
<</script>><<dialogue "" "Taking a deep breath, you twist and strain your limbs against the cracked straps. The leather creaks and, one by one, they give way under your desperate effort. You rub your aching wrists, gather your clothes scattered on the floor, and dress as quickly as your trembling hands allow. Without looking back, you prepare to leave the room with your heart pounding, before the patient returns." "description">>
<<if $RapeSuck gte 5>>
<<addDialogue "" "I can’t stop now… Every step feels heavier, but I have to keep moving. My heart’s pounding so loud it’s drowning out everything else. If I slow down, even for a second… I’m done." "thoughts">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Saveroom]]">>
<<horizontalEnd>>
<<include "Change_MenuIMG">><<dialogue "" "Taking a deep breath, you twist and strain your limbs against the cracked straps. The leather creaks and, one by one, they give way under your desperate effort. You rub your aching wrists, gather your clothes scattered on the floor, and dress as quickly as your trembling hands allow. Without looking back, you prepare to leave the room with your heart pounding, before the patient returns." "description">>
<<if $RapeSuck gte 5>>
<<addDialogue "" "I can’t stop now… Every step feels heavier, but I have to keep moving. My heart’s pounding so loud it’s drowning out everything else. If I slow down, even for a second… I’m done." "thoughts">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Continue|SRcorridor]]">>
<<horizontalEnd>>
<<include "Change_MenuIMG">><<dialogue "" "Taking a deep breath, you twist and strain your limbs against the cracked straps. The leather creaks and, one by one, they give way under your desperate effort. You rub your aching wrists, gather your clothes scattered on the floor, and dress as quickly as your trembling hands allow. Without looking back, you prepare to leave the room with your heart pounding, before the patient returns." "description">>
<<if $RapeSuck gte 5>>
<<addDialogue "" "I can’t stop now… Every step feels heavier, but I have to keep moving. My heart’s pounding so loud it’s drowning out everything else. If I slow down, even for a second… I’m done." "thoughts">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Continue|SRcorridor]]">>
<<horizontalEnd>>
<<include "Change_MenuIMG">>
<<include "Change_MenuIMG">><<dialogue "" "Taking a deep breath, you twist and strain your limbs against the cracked straps. The leather creaks and, one by one, they give way under your desperate effort. You rub your aching wrists, gather your clothes scattered on the floor, and dress as quickly as your trembling hands allow. Without looking back, you prepare to leave the room with your heart pounding, before the patient returns." "description">>
<<addDialogue "Casey" ""Oh! Fuck! I think my ass is going to hurt for a while."
" "talk">>
<<if $RapeSuck gte 5>>
<<addDialogue "" "I can’t stop now… Every step feels heavier, but I have to keep moving. My heart’s pounding so loud it’s drowning out everything else. If I slow down, even for a second… I’m done." "thoughts">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Continue|SRcorridor]]">>
<<horizontalEnd>>
<<include "Change_MenuIMG">><<dialogue "" "Taking a deep breath, you twist and strain your limbs against the cracked straps. The leather creaks and, one by one, they give way under your desperate effort. You rub your aching wrists, gather your clothes scattered on the floor, and dress as quickly as your trembling hands allow. Without looking back, you prepare to leave the room with your heart pounding, before the patient returns." "description">>
<<if $RapeSuck gte 5>>
<<addDialogue "" "I can’t stop now… Every step feels heavier, but I have to keep moving. My heart’s pounding so loud it’s drowning out everything else. If I slow down, even for a second… I’m done." "thoughts">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Continue|SRcorridor]]">>
<<horizontalEnd>>
<<include "Change_MenuIMG">><<dialogue "" "Taking a deep breath, you twist and strain your limbs against the cracked straps. The leather creaks and, one by one, they give way under your desperate effort. You rub your aching wrists, gather your clothes scattered on the floor, and dress as quickly as your trembling hands allow. Without looking back, you prepare to leave the room with your heart pounding, before the patient returns." "description">>
<<addDialogue "Casey" ""Oh! Fuck! I think my ass is going to hurt for a while."
" "talk">>
<<if $RapeSuck gte 5>>
<<addDialogue "" "I can’t stop now… Every step feels heavier, but I have to keep moving. My heart’s pounding so loud it’s drowning out everything else. If I slow down, even for a second… I’m done." "thoughts">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Main Hallway2]]">>
<<horizontalEnd>>
<<include "Change_MenuIMG">><<dialogue "" "You regain consciousness in a gloomy room, barely lit by a flickering bulb. The walls, covered in worn leather, and the ceiling, draped with chains and ropes, seem to close in around you. The air is thick with the rancid smell of sweat and rusted metal. A man leans over you, trying to impose his will. You resist with all your strength, shaking your head and clenching your jaw as your wrists and ankles struggle against the straps that bind you." "description">>
<<addDialogue "Casey" "Get away from me!" "talk">>
<<addDialogue "Patient" "You… mine… You like, dick in mouth." "talk">>
<<addDialogue "Casey" "Son of a bitch!" "talk">>
<<addDialogue "Patient" "Nooo! Ahh!" "talk">>
<<addVideo "media/casey/castigosuck.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "The man’s anger overflows, and without a word, he forces himself into your mouth, overpowering your resistance." "description">>
<<addVideo "media/casey/castigosuck2.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|RapeSuck1]]">>
<<horizontalEnd>>
<<set $rapeFace = 1>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<<script>>
window.HealthSanitySystem.addHealth(50)
<</script>>
<<set $Corruption += 5>>
<<if $castigosuckVideo isnot true>>
<<unlockVideo 1 2>>
<<unlockVideo 1 3>>
<<set $castigosuckVideo = true>>
<</if>><<dialogue "" "The door is locked; there doesn’t seem to be any way to open it." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" "Maybe it’s better if they don’t know what’s in here." "talk">>
<</switch>>
<<addDialoguePos "" "[[Back|Playroom]]" "center">><<dialogue "" "The room is dimly lit by a single flickering bulb, casting long, trembling shadows across the walls. Leather straps hang from hooks, and chains clink softly with every movement. The air is thick with the smell of sweat and something you’d rather not identify." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|Playroom]]">>
<<horizontalEnd>>
<<set $playdoor = true>><<dialogue "" "Finally, the patient seems to find the satisfaction he was seeking. He straightens up, crosses the room, and leaves the door ajar as he exits. You feel the rope around your hands loosen, giving you a chance to break free. You’re trembling, your throat dry and your heart racing, aware that this is your moment to escape… though the mark this experience leaves will be etched in your mind, hard to erase.
" "description">>
<<addVideo "media/casey/endcastigo.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "Casey" "Shit, shit, shit! I can’t fucking believe this… That fucking bastard! Cof cof... I can still feel his hands on me… Goddammit! Cof..! I should’ve fought harder—fuck! No… no, I can’t think about it now. Just keep moving, Casey, keep moving! If he catches me again… no, fuck that, I’m not letting it happen. I’ll kill him!" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Escape|RapeSuckEscape]]">>
<<horizontalEnd>>
<<setAvatarDirect "nude.png">>
<<if $endcastigoVideo isnot true>>
<<unlockVideo 1 4>>
<</if>><<dialogue "" "You work quickly, your hands trembling as you loosen the rope binding your wrists. You feel the fabric brush against your skin as you dress, each movement precise and charged with adrenaline and the fear still pounding in your chest. You force yourself to breathe steadily, aware that you don’t have a second to lose." "description">>
<<addDialogue "" "Why the fuck do I get stuck with this shit? Shit, shit! I should’ve never come here! I need to get out of here!" "thoughts">>
<<addDialogue "Casey" "Calm the fuck down… if I lose it now, I’m dead. Just keep moving. Hold on. I have to find my sister..." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Sexdungeon]]">>
<<horizontalEnd>>
<<include "Change_MenuIMG">><<dialogue "" "Finally, you decide to look away, unable to bear the disturbing image any longer. You take a step back, distancing yourself from the mirror. As you do, the figure in the reflection freezes, the smile fades, and everything falls silent." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Mirrors2]]">>
<<horizontalEnd>><<dialogue "" "Suddenly, its face begins to change. The skin turns grayish, the eyes become completely black, and its teeth elongate into a fierce snarl. The reflection is no longer you, but a grotesque demon beginning to emerge from the mirror with a diabolical laugh." "description">>
<<addDialogue "Casey" "No... no, this can’t be happening!" "talk">>
<<addDialogue "" "Before you can react, the creature lunges at you, claws extended and ready to attack. You feel an intense cold and paralyzing terror as you struggle to escape this nightmare becoming real." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Fight the demon|FightDemon]]">>
<<horizontalEnd>>
<<set $MirrorFight = 1>>
<<set $BreakMirror = true>>
<<timed 4s>>
<<script>>
playSoundDirect('evilwoman2.mp3');
<</script>>
<</timed>> Single:
window.addDocumentWithNotification(
"missing_person_photo",
"Missing Person Evidence",
"Last known photograph of victim",
"",
"photo",
"📷",
{
imagePath: "img/backgrounds/hospital-entrance.png",
location: "Hospital Security Camera - Main Lobby",
photographer: "Security System Auto-Capture",
frontDescription: `Sarah Mitchell, age 22, captured on security footage at 11:47 PM on October 15th.
This was the last confirmed sighting before her disappearance. Note the anxious expression and
the way she keeps looking over her shoulder, suggesting she may have been followed.`
}
);
Double:
window.addDocumentWithNotification(
"ritual_evidence_photo",
"Ritual Site Evidence",
"Disturbing polaroid found at crime scene",
"",
"photo",
"📸",
{
imagePath: "img/backgrounds/dark_corridor.png",
location: "Abandoned Hospital - Sub-basement",
photographer: "Detective Casey",
frontDescription: `Strange symbols carved into the concrete walls of the sub-basement.
The markings appear fresh, suggesting recent activity. Blood traces found around the perimeter
have been sent for DNA analysis.`,
backImage: {
path: "img/backgrounds/hospital-entrance.png",
notes: "Message discovered on reverse side",
analysis: "Ink composition testing in progress"
},
backDescription: `Written in what appears to be dried blood: "The ritual is complete.
The door between worlds has been opened. Sarah was just the beginning.
More will follow when the moon is dark again. - The Keeper of Shadows"`
}
);
<<hideMenuElement "shop-btn">>
<style>
@media (orientation: landscape) and (max-height: 600px) {
.character-menu > div:nth-child(1) > div:nth-child(2) {
width: 18% !important;
gap: 8px !important;
transform: translate(0px, 20px) !important;
width: 15vw !important;
height: 20vw !important;
}
}
@media (min-width: 1201px) {
.character-menu-logo {
width: 100% !important;
height: 180% !important;
margin-top: -5vh !important;
transform: translate(-4px, -2px);
}
}
@media (max-width: 1200px) and (orientation: landscape) {
.character-menu-logo {
width: 90% !important;
height: 200% !important;
margin-top: -12vh !important;
transform: translate(-6px, 45px);
}
}
@media (max-width: 768px) {
.polaroid-caption {
width: 270px;
height: 85px;
font-size: 11px;
padding: 0 10px;
gap: 12px;
transform: translate(-19px, 8px);
}
}
.polaroid-caption {
width: 314px;
height: 100px;
background: #f8f8f8;
display: flex;
align-items: center;
justify-content: center;
padding: 0 12px;
font-family: 'Courier New', monospace;
font-size: 12px;
color: #333;
text-align: center;
line-height: 1.3;
box-sizing: border-box;
overflow: hidden;
gap: 10px;
}
#lantern-button {
transform: translate(-60%, -50%) !important;
}
#lantern-bar {
transform: translate(-70%, -54%) !important;
width: 33% !important;
height: 24% !important;
}
@media (pointer: coarse) and (orientation: landscape) and (max-width: 1023px) {
#lantern-button {
background-size: 80% 80% !important;
background-position: center !important;
width: 13vw !important;
height: 8vw !important;
}
}
.control-btn {
transform: translate(-7px, -26px) !important;
}
.control-btn:hover {
transform: translate(-7px, -26px) !important;
}
#fullscreen-btn {
z-index: 10000000 !important;
}
#audio-btn {
top: 70px !important;
}
.document-body {
color: #858585;
}
.gallery-section.photos.active {
row-gap: 20px;
}
#save-button.main-menu-btn:not(.main-menu #save-button) {
font-size: 18px !important;
padding: 12px 30px !important;
margin-bottom: -1vw !important;
}
.polaroid-frame, {
background: rgb(12 12 12 / 95%);
}
.polaroid-caption {
background: #999999;
}
.polaroid-side {
height: 440px;
}
.polaroid-info-line {
font-size: 11px;
color: #000000;
}
.polaroid-description {
font-size: 11px;
color: #000000;
}
.evidence-photo {
width: 314px;
height: 300px;
display: block;
object-fit: cover;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
border-radius: 2px;
margin-bottom: 12px;
}
#text-section {
background: rgb(0 0 0 / 40%) !important;
}
</style><<dialogue "" "Your vision blurs for a moment... and when you blink, the hallway has changed. Where there was once only a blank wall, a door now stands." "description">>
<<addDialogue "" "It’s a pale wooden door—old, yet strangely intact—with a dusty golden handle. Nailed to the center is a hand-written sign, the ink shaky and uneven: *'HELP HER.'*" "description">>
<<addDialogue "Casey" "What the hell...? That door wasn’t there a second ago..." >>
<<addDialogue "" "A chill runs down your spine. Something deep inside pulls at you, like a silent cry echoing from the other side. You don’t know why, but your feet begin to move on their own." "description">>
<<addImageV "img/events/sistereventdoor.png">>
<<horizontalStart>>
<<addDialogue "" "[[Open the door|DistortedMemory]]">>
<<horizontalEnd>>
<<dialogue "" "Your vision blurs for a moment... and when you blink, the hallway has changed. Where there was once only a blank wall, a door now stands." "description">>
<<addDialogue "" "It’s a pale wooden door—old, yet strangely intact—with a dusty golden handle. Nailed to the center is a hand-written sign, the ink shaky and uneven: *'HELP HER.'*" "description">>
<<addDialogue "Casey" "What the hell...? That door wasn’t there a second ago..." >>
<<addDialogue "" "A chill runs down your spine. Something deep inside pulls at you, like a silent cry echoing from the other side. You don’t know why, but your feet begin to move on their own." "description">>
<<addImageV "img/events/sistereventdoor.png">>
<<horizontalStart>>
<<addDialogue "" "[[Open the door|DistortedMemory]]">>
<<horizontalEnd>>
<<dialogue "" "You step through the threshold and suddenly the world behind you fades into a thick fog that won’t let you go back. The air grows heavy, almost suffocating. In front of you stretches a long, narrow hallway with walls worn down by time. Everything feels both familiar and strange, like a distorted memory." "description">>
<<addDialogue "Casey" "Where the hell am I...? This doesn’t make any sense..." "talk">>
<<addDialogue "" "At the end of the hall, a figure moves slowly through the shadows. It’s a young blonde woman, fragile in presence. Her eyes search for you urgently, and for a moment you feel trapped by that look you know so well. Without a word, she steps into the last room and leaves the door ajar." "description">>
<<addDialogue "Casey" "Wait, don’t go... please!" "talk">>
<<addDialogue "" "Oh shit! It’s her!" "thoughts">>
<<addDialogue "Casey" "Angi! I came to get you out of here, just wait!" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Go to the room|MeetingAngi]]">>
<<horizontalEnd>>
<<set $brokeSister = false>><<dialogue "" "Your vision blurs for a moment... and when you blink, the hallway has changed. Where there was once only a blank wall, a door now stands." "description">>
<<addDialogue "" "It’s a pale wooden door—old, yet strangely intact—with a dusty golden handle. Nailed to the center is a hand-written sign, the ink shaky and uneven: *'HELP HER.'*" "description">>
<<addDialogue "Casey" "What the hell...? That door wasn’t there a second ago..." >>
<<addDialogue "" "A chill runs down your spine. Something deep inside pulls at you, like a silent cry echoing from the other side. You don’t know why, but your feet begin to move on their own." "description">>
<<addImageV "img/events/sistereventdoor.png">>
<<horizontalStart>>
<<addDialogue "" "[[Open the door|DistortedMemory]]">>
<<horizontalEnd>>
<<set $bedCeventSister = true>><<dialogue "" "Your vision blurs for a moment... and when you blink, the hallway has changed. Where there was once only a blank wall, a door now stands." "description">>
<<addDialogue "" "It’s a pale wooden door—old, yet strangely intact—with a dusty golden handle. Nailed to the center is a hand-written sign, the ink shaky and uneven: *'HELP HER.'*" "description">>
<<addDialogue "Casey" "What the hell...? That door wasn’t there a second ago..." >>
<<addDialogue "" "A chill runs down your spine. Something deep inside pulls at you, like a silent cry echoing from the other side. You don’t know why, but your feet begin to move on their own." "description">>
<<addImageV "img/events/sistereventdoor.png">>
<<horizontalStart>>
<<addDialogue "" "[[Open the door|DistortedMemory]]">>
<<horizontalEnd>>
<<set $bedAeventSister = true>><<dialogue "" "You rush to the half-open door and step into the room. Angi is sitting on the floor, hugging her knees, her eyes distant, her face a mask of fear and sadness." "description">>
<<addDialogue "Casey" "Angi... it's me, your sister. I'm here now." "talk">>
<<addDialogue "" "She slowly lifts her gaze, her voice weak and trembling, almost a whisper." "description">>
<<addDialogue "Angelica Casey" "Why... did you leave me alone?" "talk">>
<<addDialogue "Casey" "I'm sorry, I'm so sorry, I..." "talk">>
<<addDialogue "" "Her voice grows louder, cracked with pain and rage." "description">>
<<addDialogue "Angelica Casey" "You abandoned me when I needed you the most!" >>
<<addDialogue "Casey" "No... I couldn’t... I didn’t know how to help..." >>
<<addDialogue "Angelica Casey" "I don’t need you anymore! We’re not sisters!" "talk">>
<<addDialogue "Casey" "Angi, no! This isn’t you!" "talk">>
<<addDialogue "" "Suddenly, her skin begins to crack and darken. Her fingers stretch into sharp claws, and her body twists into a monstrous shape, radiating a suffocating, dark aura that fills the room." "description">>
<<addDialogue "Casey" "Shit! Who... what are you?! Where is Angi?!" "talk">>
<<addDialogue "" "The demon that once was your sister lets out a feral roar and lunges at you with unleashed fury." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Fight the demon|sistereventDemon]]">>
<<horizontalEnd>>
<<showNPC "Angi" "img/characters/angi/angi1.png" "Angelica Casey">>
<<set $EventSisterPelea = 1>><<run startAdvancedBattle([
{
type: 'twistedSister',
hp: 120,
distance: 25,
randomDistance: true,
speed: "8-12",
minMovement: 8,
maxMovement: 12,
damage: 18,
DamageIgnore: {
'pistol': 1,
'rifle': 1,
'shotgun': 1,
'melee': 0.5,
'incendiary': 0.1,
'dragon_breath': 0.0,
'tracer': 1,
'9mm': 1,
'.45': 1,
'slugs': 1
}
},
], 'VictoryPassage', false, 'CombatEscape', false)>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<dialogue "" "The demon collapses to the ground with a guttural roar, its form dissolving into a slowly fading cloud of shadows. The oppressive darkness in the hallway begins to lift, revealing worn walls and a faint light shining in the distance." "description">>
<<addDialogue "Casey" "It’s over... I did it." "talk">>
<<addDialogue "" "The silence that follows feels heavy, yet strangely freeing. Your breathing steadies, and a warm sensation spreads through your body—a small spark of hope defying the darkness." "description">>
<<addDialogue "" "That wasn’t Angi... but maybe, just maybe, there’s still hope. I can still save her." "thoughts">>
<<addDialogue "" "As you glance one last time at the spot where the demon vanished, something catches your eye. On the floor, among the fading shadows, lies an old, worn teddy bear." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Pick up the teddy bear|PickUpTeddy|?inventoryFull]]">>
<<horizontalEnd>>
<<if $brokeSisterSotano is true>>
<<addDialogue "" "[[Exit|CellCorridorA]]">>
<<else>>
<<if $bedAeventSister is true>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|BedroomA]]">>
<<horizontalEnd>>
<<elseif $bedCeventSister is true>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|BedroomC]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|Main hallway]]">>
<<horizontalEnd>>
<</if>>
<</if>>
<<script>>
window.HealthSanitySystem.addSanity(50)
<</script>>
<<set $EventSisterPelea = 2>><<dialogue "" "You stumble back, heart pounding in your chest, just as the demon lunges at you with a deafening roar. At the last second, you slip through the door and slam it shut behind you." "description">>
<<addDialogue "" "Heavy footsteps thunder on the other side, claws scrape furiously at the wood... and then, silence." "description">>
<<addDialogue "" "You hold your breath. For now... you've made it out alive." "description">>
<<addDialogue "Casey" "Shit... that thing wasn’t her. That wasn’t my sister..." "talk">>
<<addDialogue "" "I have to keep going. I have to find her..." "thoughts">>
<<addDialogue "" "Everything seems to return to normal. The hallway is clear, and the darkness has lifted. But the echo of what you saw still lingers inside you. At the end, the exit door offers you a moment of peace... at least for now. Deep down, a part of you finds relief—whatever that thing was, it wasn’t Angi. There’s still hope." "description">>
<<if $bedAeventSister is true>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|BedroomA]]">>
<<horizontalEnd>>
<<elseif $bedCeventSister is true>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|BedroomC]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|Main hallway]]">>
<<horizontalEnd>>
<</if>>
<<script>>
window.HealthSanitySystem.addSanity(30)
<</script>>
<<set $EventSisterPelea = 0>><<dialogue "" "You pick up the teddy bear, its soft texture surprising you amid the tension. You carefully place it in your backpack, feeling it as a small symbol of hope amidst the darkness." "description">>
<<addDialogue "Casey" "This teddy... maybe it means something. Better take it with me." "talk">>
<<addDialogue "" "You head towards the exit door without looking back." "description">>
<<if $brokeSisterSotano is true>>
<<addDialogue "" "[[Exit|CellCorridorA]]">>
<<else>>
<<if $bedAeventSister is true>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|BedroomA]]">>
<<horizontalEnd>>
<<elseif $bedCeventSister is true>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|BedroomC]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|Main hallway]]">>
<<horizontalEnd>>
<</if>>
<</if>>
<<script>>
const itemKey = 'teddybear';
const itemName = 'Tedd Bear';
const itemDescription = 'Teddy bear, helps maintain your mental state. (Restore 100 sanity).';
const itemValue = 300;
const imagePath = `img/items/special/teddybear.png`;
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "special",
image: imagePath,
stackable: true,
maxStack: 1,
value: itemValue,
weight: 0.2,
isSellable: true,
sanityRestore: 100
};
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 1,
img: imagePath
};
//Adding item ro inventory
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
window.ShopSystem.populateSellItems();
<</script>><<dialogue "" "You carefully put the pack of bandages into your backpack." "description">>
<<addImage "img/events/smalltaquillaopen.png">>
<<if $smallLockerCard isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Take level A magnetic card|taquillaCard|?inventoryFull]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Storage2]]" "center">>
<<set $smallLockerbandages = true>>
<<script>>window.addItemFromDatabase('bandages', 4);<</script>><<dialogue "" "You take the Level A magnetic keycard and tuck it safely into your backpack." "description">>
<<addImage "img/events/smalltaquillaopen.png">>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Storage2]]" "center">>
<<set $smallLockerCard = true>>
<<set $cardA = true>>
<<script>>
const itemKey = 'levelacard';
const itemName = 'Magnetic Card (Level A)';
const itemDescription = 'A small magnetic keycard labeled Level A access in Charles Francis Hospital.';
const itemValue = 100;
const imagePath = `img/items/keys/acard.png`;
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "special",
image: imagePath,
stackable: false,
maxStack: 1,
value: itemValue,
weight: 0.1,
isSellable: false,
};
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 1,
img: imagePath
};
// Adding item to inventory
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
window.ShopSystem.populateSellItems();
<</script>>
<<dialogue "" "The case is locked, but the weapon appears to be in good condition—waiting to be used." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" "This shotgun might come in handy... if I can get it out of that case." "talk">>
<</switch>>
<<if $storageKey is true>>
<<horizontalStart>>
<<addDialogue "" "[[Open glass|TakeShotgun]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Aroom]]" "center">><<dialogue "" "With skill, you open the display case and take the shotgun. It’s heavier than expected but in perfect condition, ready to be used when needed." "description">>
<<addDialogue "Casey" "What the hell is a shotgun doing in a hospital? This room feels more like an armory than a regular room. Something doesn’t add up… but I can’t stop now. I have to keep moving." "talk">>
<<addDialoguePos "" "[[Continue|Aroom]]" "center">>
<<set $openGlass = true>>
<<set $Shotgun = true>>
<<script>>window.addItemFromDatabase('shotgun', 1);<</script>><<dialogue "" "The room is dimly lit, with emergency lights casting a faint, flickering glow. Dusty metal shelves line the walls, and scattered papers lie on the floor. The reinforced glass display case that once held the shotgun now stands empty." "description">>
<<if $AmmoTake isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check shelves|ammoescopeta]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Left Corridor1]]" "center">><<dialogue "" "You search the room thoroughly and find some shotgun ammunition tucked away on one of the dusty shelves." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take shells|ammoescopeta2|?!canPickupShotgunShells]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Left Corridor1]]" "center">><<dialogue "" "You carefully store the shotgun ammunition in your backpack, making sure it’s well secured." "description">>
<<if $Shotgun is true>>
<<addDialogue "Casey" "Perfect, just what I needed." "talk">>
<</if>>
<<addDialoguePos "" "[[Back|Left Corridor1]]" "center">>
<<script>>window.addItemFromDatabase('shotgun_shells', 18);<</script>><<dialogue "" "Before you stretches a huge greenhouse. Its glass structure, slightly fogged and covered with moss in the corners, reflects the daylight with soft glimmers. The green, damp leaves of plants peeking through the gaps in the metal frame show signs of contained life." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check door|greenhouseDoor]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Back to garden|Garden-MainPath]]">>
<<horizontalEnd>>
<<set $inveradero = true>><<dialogue "" "You check the greenhouse door. It’s closed and appears to be locked." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" "After all these years of the hospital being abandoned, I wonder where they could have kept the key..." "talk">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Back to garden|GreenhouseEntrada]]">>
<<horizontalEnd>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "At the end of the path, you see a large warehouse looming ahead. Its worn metal walls and dark tiled roof seem out of place among the surrounding vegetation. Vines crawl up the walls, almost trying to conceal it. The old metal door, with rusted hinges, appears to be sealed shut." "description">>
<<addDialogue "Casey" "I wonder what kind of things they keep in a place like this..." "talk">>
<<addDialogue "" "There has to be a way in." "thoughts">>
<<default>>
<<dialogue "" "The large warehouse stands as always, its worn metal walls and dark tiled roof contrasting with the wild vegetation that surrounds it. Vines steadily climb the walls, wrapping around the structure like a living shroud, while tall grass and wildflowers grow unchecked around its base." "description">>
<<set $randomComent = random(3)>>
<<if $randomComent is 0>>
<<addDialogue "" "There has to be a way in." "thoughts">>
<</if>>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Check warehouse door|warehouseDoor]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Back to garden|Garden-LeftPath]]">>
<<horizontalEnd>>
<<set $warehouse = true>><<dialogue "" "You approach the metal door and examine it carefully. It’s firmly sealed, the rusted hinges barely budging. There’s no visible lock or any sign of a mechanism to open it from the outside." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "" "This doesn’t look like an entrance meant to be opened easily. Someone wants to keep this shut… or prevent someone from getting out." "thoughts">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Back|BigWarehouse]]">>
<<horizontalEnd>>
<<script>>
// Define el widget de cuenta regresiva mejorado
Macro.add('countdown', {
handler: function () {
const duration = this.args[0] || 60;
const targetPassage = this.args[1] || 'NuevoPasaje';
const countdownId = 'countdown';
if (State.variables.countdownActive === true) {
return;
}
State.variables.countdownActive = true;
let countdownContainer = document.getElementById(countdownId + '-container');
if (!countdownContainer) {
// Contenedor principal
countdownContainer = document.createElement('div');
countdownContainer.id = countdownId + '-container';
countdownContainer.style.position = 'fixed';
countdownContainer.style.top = '3%';
countdownContainer.style.right = '3%';
countdownContainer.style.zIndex = '1000000';
// Crear el cronómetro con estilo cinematográfico
const timerBox = document.createElement('div');
timerBox.style.cssText = `
background: linear-gradient(135deg, rgba(0,0,0,0.9), rgba(20,20,20,0.95));
border: 2px solid rgba(255,193,7,0.6);
border-radius: 12px;
padding: 15px 20px;
box-shadow:
0 0 20px rgba(255,193,7,0.3),
inset 0 1px 1px rgba(255,255,255,0.1),
0 8px 32px rgba(0,0,0,0.8);
backdrop-filter: blur(10px);
position: relative;
min-width: 120px;
text-align: center;
animation: fadeInPulse 0.8s ease-out;
`;
// Efecto de brillo en el borde
const glowEffect = document.createElement('div');
glowEffect.style.cssText = `
position: absolute;
top: -2px; left: -2px; right: -2px; bottom: -2px;
background: linear-gradient(45deg,
transparent, rgba(255,193,7,0.4), transparent);
border-radius: 12px;
z-index: -1;
animation: borderGlow 2s ease-in-out infinite alternate;
`;
timerBox.appendChild(glowEffect);
// Etiqueta "TIME LEFT"
const label = document.createElement('div');
label.style.cssText = `
color: rgba(255,193,7,0.8);
font-family: 'Arial', sans-serif;
font-size: 11px;
font-weight: bold;
letter-spacing: 1px;
margin-bottom: 5px;
text-shadow: 0 0 6px rgba(255,193,7,0.5);
opacity: 0.9;
`;
label.textContent = 'TIME LEFT';
timerBox.appendChild(label);
// Contenedor del tiempo
const timeDisplay = document.createElement('div');
timeDisplay.style.cssText = `
display: flex;
justify-content: center;
align-items: center;
gap: 3px;
`;
// Segundos
const secondsElement = document.createElement('div');
secondsElement.id = countdownId;
secondsElement.style.cssText = `
color: #fff;
font-family: 'Courier New', monospace;
font-size: 28px;
font-weight: bold;
text-shadow:
0 0 10px rgba(255,193,7,0.8),
0 0 20px rgba(255,193,7,0.4),
2px 2px 4px rgba(0,0,0,0.8);
transition: all 0.3s ease;
`;
// Separador
const separator = document.createElement('div');
separator.style.cssText = `
color: rgba(255,193,7,0.7);
font-family: 'Courier New', monospace;
font-size: 28px;
font-weight: bold;
text-shadow: 0 0 8px rgba(255,193,7,0.6);
animation: blink 1s ease-in-out infinite;
`;
separator.textContent = '.';
// Milisegundos
const msElement = document.createElement('div');
msElement.id = countdownId + '-ms';
msElement.style.cssText = `
color: rgba(255,193,7,0.9);
font-family: 'Courier New', monospace;
font-size: 18px;
font-weight: bold;
text-shadow: 0 0 8px rgba(255,193,7,0.6);
`;
timeDisplay.appendChild(secondsElement);
timeDisplay.appendChild(separator);
timeDisplay.appendChild(msElement);
timerBox.appendChild(timeDisplay);
// Barra de progreso
const progressBar = document.createElement('div');
progressBar.style.cssText = `
width: 100%;
height: 4px;
background: rgba(255,255,255,0.1);
border-radius: 2px;
margin-top: 10px;
overflow: hidden;
box-shadow: inset 0 1px 2px rgba(0,0,0,0.5);
`;
const progressFill = document.createElement('div');
progressFill.id = countdownId + '-progress';
progressFill.style.cssText = `
height: 100%;
background: linear-gradient(90deg,
rgba(255,193,7,1),
rgba(255,193,7,0.7));
border-radius: 2px;
transition: width 0.1s linear;
box-shadow: 0 0 8px rgba(255,193,7,0.6);
`;
progressBar.appendChild(progressFill);
timerBox.appendChild(progressBar);
countdownContainer.appendChild(timerBox);
document.body.appendChild(countdownContainer);
// Añadir estilos CSS para animaciones
if (!document.getElementById('countdown-styles')) {
const styleSheet = document.createElement('style');
styleSheet.id = 'countdown-styles';
styleSheet.textContent = `
@keyframes fadeInPulse {
0% { opacity: 0; transform: scale(0.8); }
50% { opacity: 1; transform: scale(1.05); }
100% { opacity: 1; transform: scale(1); }
}
@keyframes borderGlow {
0% { opacity: 0.3; }
100% { opacity: 0.8; }
}
@keyframes blink {
0%, 50% { opacity: 1; }
51%, 100% { opacity: 0.3; }
}
@keyframes urgentPulse {
0%, 100% { transform: scale(1); }
50% { transform: scale(1.03); }
}
@keyframes criticalFlash {
0%, 100% {
border-color: rgba(255,193,7,0.6);
box-shadow: 0 0 20px rgba(255,193,7,0.3);
}
50% {
border-color: rgba(220,53,69,0.8);
box-shadow: 0 0 25px rgba(220,53,69,0.5);
}
}
`;
document.head.appendChild(styleSheet);
}
}
const startTimeKey = `countdownStartTime_${countdownId}`;
let startTime = State.variables[startTimeKey];
if (!startTime) {
startTime = Date.now();
State.variables[startTimeKey] = startTime;
}
const updateCountdown = () => {
const nowTime = Date.now();
const elapsed = (nowTime - startTime) / 1000;
let remainingTime = Math.max(0, duration - elapsed);
const seconds = Math.floor(remainingTime);
const milliseconds = Math.floor((remainingTime - seconds) * 100);
// Actualizar display
const secondsEl = document.getElementById(countdownId);
const msEl = document.getElementById(countdownId + '-ms');
const progressEl = document.getElementById(countdownId + '-progress');
const container = document.getElementById(countdownId + '-container');
if (secondsEl) {
secondsEl.textContent = String(seconds).padStart(2, '0');
msEl.textContent = String(milliseconds).padStart(2, '0');
// Actualizar barra de progreso
const progressPercent = (remainingTime / duration) * 100;
progressEl.style.width = progressPercent + '%';
// Efectos según el tiempo restante
if (remainingTime <= 10 && remainingTime > 5) {
// Advertencia: pulso suave
container.style.animation = 'urgentPulse 1s ease-in-out infinite';
progressEl.style.background = 'linear-gradient(90deg, rgba(255,193,7,1), rgba(255,152,0,0.9))';
} else if (remainingTime <= 5) {
// Crítico: flash rojo
container.style.animation = 'criticalFlash 0.5s ease-in-out infinite';
progressEl.style.background = 'linear-gradient(90deg, rgba(220,53,69,1), rgba(255,193,7,0.8))';
secondsEl.style.color = '#dc3545';
}
}
if (remainingTime <= 0) {
clearInterval(intervalId);
if (document.getElementById(countdownId + '-container')) {
document.body.removeChild(document.getElementById(countdownId + '-container'));
}
Engine.play(targetPassage);
delete State.variables.countdownIntervalId;
delete State.variables[startTimeKey];
delete State.variables.countdownActive;
}
};
const intervalId = setInterval(updateCountdown, 10);
State.variables.countdownIntervalId = intervalId;
updateCountdown();
}
});
// Widget para eliminar la cuenta regresiva (sin cambios)
Macro.add('removecountdown', {
handler: function () {
const countdownContainer = document.getElementById('countdown-container');
if (countdownContainer) {
document.body.removeChild(countdownContainer);
}
let existingIntervalId = State.variables.countdownIntervalId;
if (existingIntervalId) {
clearInterval(existingIntervalId);
delete State.variables.countdownIntervalId;
const startTimeKey = `countdownStartTime_countdown`;
delete State.variables[startTimeKey];
delete State.variables.countdownActive;
}
}
});
<</script>><<include "Countdown">>
<<set $bag = false>>
<<set $BlueSerum = 0>>
<<set $GreenSerum = 0>>
<<set $RedSerum = 0>>window.startSimpleBattle(['wolf', 'wolf'], 15, 'forest_victory', false, 'ran_away_passage', true);
window.startSimpleBattle(['imposibleAberration', 'nightmareShade'], 8, 'nightmare_ended', false, null, true);
enemies1) enemies 2) distance 3) victory passage 4) button escape 5)escape passage 6)ignore death
<<run startAdvancedBattle([
{
type: 'imposibleAberration',
hp: 800,
distance: 50,
randomDistance: true,
speed: "13-18",
minMovement: 13,
maxMovement: 18,
damage: 22,
DamageIgnore: {
'pistol': 0.7,
'rifle': 0.6,
'shotgun': 0.8,
'melee': 0.5,
'incendiary': 0.1,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.8,
'.45': 0.7,
'slugs': 0.9
}
},
{
type: 'nightmareShade',
hp: 120,
distance: 180,
randomDistance: true,
minMovement: 10,
maxMovement: 35,
sanityDamage: 18,
DamageIgnore: {
'pistol': 0.6,
'rifle': 0.5,
'shotgun': 0.7,
'melee': 0.4,
'incendiary': 0.0,
'piercing': 0.3,
'dragon_breath': 0.1
}
}
], 'VictoryPassage', false, 'fled_from_nightmare', true)>>
<<dialogue "" "Your strength fades. The nurse close in, their cold, unblinking eyes locked on you as they advance." "description">>
<<addDialogue "" "No… I can’t keep going…" "thoughts">>
<<addDialogue "Mad Nurse" "Hahaha! You are mine!" "talk">>
<<addDialogue "" "The nurse grabs your arm with inhuman strength while another pulls out a syringe that gleams under the dim hallway light. The sting is quick, but the burning that spreads through your body freezes you in place." "description">>
<<addDialogue "Casey" "Dam…" "talk">>
<<dialogue "" "Your voice fades. Darkness comes, carried by the echo of their footsteps and the chilling realization that they’re dragging you toward a fate with no easy escape." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|nurseEvent1]]">>
<<horizontalEnd>>
<<set $TNurses = 0>>
<<set $Corruption += 3>>
<<set $CaseyRape +=1>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<<script>>
window.HealthSanitySystem.addHealth(50)
<</script>><<dialogue "" "You wake up with a heavy head, your senses clouded, and a cold metallic feeling in your stomach. The room smells of disinfectant. One of the nurses watches you from the corner, her expression a twisted mix of curiosity and cruelty. You feel your arms restrained and an oppressive pressure running through your body. Your thoughts grow hazy as the nurse leans over you, whispering something you can’t quite make out." "description">>
<<addDialogue "Casey" "No… What… is she doing to me?" "talk">>
<<addDialogue "Mad Nurse" "Don’t think of it as punishment… We’re just getting you ready… and while we’re at it, we might as well have a little fun. Heh… heh… heh…" "talk">>
<<addDialogue "" "An involuntary shiver runs down your spine, accompanied by a strange, deeply invasive sensation… and then, suddenly, a sharp pain seizes you." "description">>
<<addVideo "media/casey/blackdildo.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Scream|nurseEvent2]]">>
<<horizontalEnd>>
<<setAvatarDirect "nude.png">>
<<if $blackdildoVideo isnot true>>
<<unlockVideo 1 12>>
<<unlockVideo 1 13>>
<<unlockVideo 1 14>>
<<set $blackdildoVideo = true>>
<</if>><<dialogue "" "The nurse has left, and at last a brief moment of respite opens up before you. The pain still pierces you like a burning dagger in your rear, stabbing with every movement, reminding you how close you came to completely collapsing. Every step is a challenge, and each breath mixes with a gasp of agony." "description">>
<<addDialogue "Casey" "Damn… I can barely walk… but I have to get out of here." "thoughts">>
<<addDialogue "" "With effort, you push yourself up and begin to dress hastily. The clothes feel rough and tight against your sore skin, but every piece put on is a small act of control over this nightmare." "description">>
<<addDialogue "Casey" "Ohh, my ass!" "talk">>
<<addDialogue "" "Clinging to every wall for support, you move slowly toward the exit. Every meter gained is a small victory, and each ragged breath brings you closer to freedom, while the pain keeps reminding you how fragile you are… but also how strong you need to be to survive. Finally, you manage to stand steadily on your own. The searing pain eases just a little, letting you focus on moving forward without crumpling under it." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Escape|BedroomC]]">>
<<horizontalEnd>>
<<include "Change_MenuIMG">>
<<run startAdvancedBattle([
{
type: 'strongNurse',
hp: 100,
distance: 15,
randomDistance: true,
speed: "4-6",
minMovement: 4,
maxMovement: 6,
damage: 10,
DamageIgnore: {
'pistol': 0.3,
'rifle': 0.2,
'shotgun': 0.0,
'melee': 0.4,
'incendiary': 0.1,
'dragon_breath': 0.0,
'tracer': 0.0,
'9mm': 0.5,
'.45': 0.4,
'slugs': 0.0
}
}
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<dialogue "Casey" "Ahh! NO!" "talk">>
<<addDialogue "" "The pain rips through you like fire burning from within. Every breath tears at your throat, your muscles tense painfully, and your heart pounds with a frantic rhythm that feels like it might tear itself from your chest." "description">>
<<addDialogue "" "God… it hurts… it hurts so much I feel like I’m going to break!" "thoughts">>
<<addDialogue "" "The nurse continues with a new wave." "description">>
<<addVideo "media/casey/blackdildo1.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "Casey" "Oh my God! Stop!" "talk">>
<<addDialogue "Mad Nurse" "Just a little more… your orifices need to be ready…" "talk">>
<<addVideo "media/casey/blackdildo2.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "She finally steps back, but her gaze never leaves you, that cruel smile freezing your blood, as if she were savoring every second of your agony." "description">>
<<addDialogue "Mad Nurse" "That should keep you quiet… for a while." "talk">>
<<addDialogue "" "Without another word, she turns and walks away, leaving the door ajar. The stabbing, paralyzing pain courses through every breath, but between gasps and tremors, you manage to gather enough strength to push yourself up and crawl toward the exit, wishing with every fiber of your being to escape this nightmare." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|nurseEventEscape]]">>
<<horizontalEnd>><<if $intro is true>>
<<if $CaseyJacket is true && $CaseyCoat isnot true>>
<<setAvatarDirect "caseyjacket.png">>
<<elseif $CaseyJacket isnot true && $CaseyCoat is true>>
<<setAvatarDirect "caseycoat.png">>
<<else>>
<<setAvatarDirect "casey2.png">>
<</if>>
<<elseif $intro isnot true>>
<<setAvatarDirect "casey.png">>
<</if>><<if window.gameState.lanternOn>>
<<goto "MirrorsCorridorLight2">>
<<else>>
<<dialogue "" "The hallway stretches out before you like an endless tunnel; you can either turn back or keep moving forward. A couple of locked doors line the walls." "description">>
<<horizontalStart>>
<<if $opendoorleftpb isnot true>>
<<addDialogue "" "[[Check door at the left|checdoorpb]]">>
<<else>>
<<addDialogue "" "[[Utility room|Utilityroompb]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue"" "[[Go to mirror's room|MirrorCorridor]]">>
<<if $fork isnot true>>
<<addDialogue "" "[[Go ahead|MainCorridorPlantaBaja]]">>
<<else>>
<<addDialogue"" "[[Head to the fork|MainCorridorPlantaBaja]]">>
<</if>>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>><<if window.gameState.lanternOn>>
<<goto "MainCorridorPlantaBajaLight">>
<<else>>
<<dialogue "" "The hallway stretches out before you like an endless tunnel; you can either turn back or keep moving forward. A couple of locked doors line the walls." "description">>
<<if $CT isnot true>>
<<addDialogue "Casey" "Now, which way?" "talk">>
<<set $CT = true>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Left corridor|LeftCorridorPB]]">>
<<addDialogue"" "[[Narrow noth hallway|MirrorsCorridor2]]">>
<<addDialogue "" "[[Right corridor|RightCorridorPB]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<<script>>
window.setLighting(70);
<</script>>
<</if>>
<<set $ShadowEnemyRandom = random(10)>>
<<if $ShadowEnemyRandom lt 2>>
<<goto "ShadowEnemyPB">>
<</if>>
<<set $fork = true>><<dialogue "" "The hallway stretches out before you like an endless tunnel; you can either turn back or keep moving forward. A couple of locked doors line the walls." "description">>
<<horizontalStart>>
<<if $opendoorleftpb isnot true>>
<<addDialogue "" "[[Check door at the left|checdoorpb]]">>
<<else>>
<<addDialogue "" "[[Utility room|Utilityroompb]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue"" "[[Go to mirror's room|MirrorCorridor]]">>
<<if $fork isnot true>>
<<addDialogue "" "[[Go ahead|MainCorridorPlantaBaja]]">>
<<else>>
<<addDialogue"" "[[Head to the fork|MainCorridorPlantaBaja]]">>
<</if>>
<<horizontalEnd>><<dialogue "" "The hallway stretches out before you like an endless tunnel; you can either turn back or keep moving forward. A couple of locked doors line the walls." "description">>
<<if $CT isnot true>>
<<addDialogue "Casey" "Now, which way?" "talk">>
<<set $CT = true>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Left corridor|LeftCorridorPB]]">>
<<addDialogue"" "[[Narrow noth hallway|MirrorsCorridor2]]">>
<<addDialogue "" "[[Right corridor|RightCorridorPB]]">>
<<horizontalEnd>>
<<set $fork = true>>
<<script>>
window.setLighting(80);
<</script>><<if window.gameState.lanternOn>>
<<goto "LeftCorridorPBLight">>
<<else>>
<<dialogue "" "The hallway stretches ahead, narrow and silent, barely lit by the flickering glow of old bulbs. A faint electrical hum drifts from somewhere beyond, mingling with the echo of drops falling from the ceiling." "description">>
<<horizontalStart>>
<<addDialogue"" "[[Head to the fork|MainCorridorPlantaBaja]]">>
<<addDialogue "" "[[Continue down the corridor|LeftCorridorPB2]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<if $GlassSound isnot true>>
<<goto "GlassSoundEvent">>
<</if>><<if window.gameState.lanternOn>>
<<goto "RightCorridorPBLight">>
<<else>>
<<dialogue "" "The hallway stretches into darkness. The peeling walls barely reflect the light, and each step echoes through the damp space. Rusted doors line the sides." "description">>
<<horizontalStart>>
<<if $RCpbdoor isnot true>>
<<addDialogue"" "[[Check door at the left|RCpbdoor]]">>
<<else>>
<<addDialogue"" "[[Enter room at the left|RCpbroom]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue"" "[[Head to the fork|MainCorridorPlantaBaja]]">>
<<if $cellspb isnot true>>
<<addDialogue "" "[[Continue down the corridor|RightCorridorPB2]]">>
<<else>>
<<addDialogue "" "[[Go to the isolation cells|RightCorridorPB2]]">>
<</if>>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>><<if window.gameState.lanternOn>>
<<goto "RightCorridorPBLight2">>
<<else>>
<<dialogue "" "The hallway stretches ahead. To the south, a corridor disappears into the shadows, and above its entrance a sign reads: 'Isolation Cells', barely legible." "description">>
<<if $isolationTalk isnot true>>
<<addDialogue "Casey" "Isolation Cells… Why are they here? Pff… I don’t think the doctor is around, and it’s not like I want to go in either…" "talk">>
<<addDialogue "" "Why are they here..? I don’t think the doctor is around." "thoughts">>
<<addDialogue "Casey" "And it’s not like I want to go in either…" "talk">>
<<set $isolationTalk = true>>
<</if>>
<<horizontalStart>>
<<addDialogue"" "[[Head to the fork|RightCorridorPB]]">>
<<addDialogue"" "[[Isolation cells corridor|IsolationCells]]">>
<<if $stairspb isnot true>>
<<addDialogue "" "[[Continue down the corridor|RightCorridorPB3]]">>
<<else>>
<<addDialogue "" "[[Go to the stairs|RightCorridorPB3]]">>
<</if>>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<set $cellspb = true>><<if window.gameState.lanternOn>>
<<goto "LeftCorridorPBLight2">>
<<else>>
<<if $Burp1 isnot true>>
<<dialogue "" "A constant, low metallic hum runs along the walls, accompanied by the vibration of pipes and cables crossing them. Suddenly, a loud, muffled burp echoes through the corridor, followed by a deep laugh." "description">>
<<addDialogue "Casey" "What? Was that..? a burp?" "talk">>
<<addDialogue "" "Well, at least I know there’s someone at the end…" "thoughts">>
<<set $Burp1 = true>>
<<else>>
<<if $FatManISdead isnot true>>
<<set $RandomBurp = random(5)>>
<<if $RandomBurp is 1>>
<<dialogue "" "A constant, low metallic hum runs along the walls, accompanied by the vibration of pipes and cables crossing them. Suddenly, a loud, muffled burp echoes through the corridor, followed by a deep laugh." "description">>
<<addDialogue "Casey" "What? Again…" "talk">>
<<else>>
<<dialogue "" "A constant, low metallic hum runs along the walls, accompanied by the vibration of pipes and cables crossing them." "description">>
<</if>>
<<else>>
<<dialogue "" "A constant, low metallic hum runs along the walls, accompanied by the vibration of pipes and cables crossing them." "description">>
<</if>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Head to the fork|LeftCorridorPB]]">>
<<if $mantinience isnot true>>
<<addDialogue "" "[[Continue down the corridor|LeftCorridorPB3]]">>
<<else>>
<<addDialogue "" "[[Maintenance corridor|LeftCorridorPB3]]">>
<</if>>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<<script>>
window.setLighting(70);
<</script>>
<</if>><<dialogue "" "You approach the door and inspect it cautiously. It’s firmly closed, and a small, worn sign barely lets you make out the word ‘Utility’" "description">>
<<horizontalStart>>
<<addDialogue "" "[[Try to pick the lock|DoorpbLockpick]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Back|MirrorsCorridor2]]">>
<<horizontalEnd>>
<<if window.gameState.lanternOn>>
<<dialogue "" "The room is a cramped space, with strangely bare walls and an air heavy with dust and dampness. On one side, a few metal shelves stand, holding old boxes and forgotten tools. The marks on the floor and the traces along the walls reveal that there were once more shelves and racks here, removed long ago, leaving the room stripped down and half-empty." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check the shelves|estantespb]]">>
<<addDialogue"" "[[Exit|MirrorsCorridor2]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "The room is too dark to search for anything." "description">>
<<horizontalStart>>
<<addDialogue"" "[[Exit|MirrorsCorridor2]]">>
<<horizontalEnd>>
<</if>>
<<dialogue "" "Halfway down the hallway, the crunch of glass shatters the silence: a bottle breaks into pieces not far from where you are. The shards clink for a moment before the echo fades into the gloom." "description">>
<<addDialogue "" "Great… someone in here clearly has too much time on their hands." "thoughts">>
<<addDialogue "Casey" "Or they're drunk…" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|LeftCorridorPB]]">>
<<horizontalEnd>>
<<set $GlassSound = true>><<dialogue "" "The hallway stretches ahead, narrow and silent, barely lit by the flickering glow of old bulbs. A faint electrical hum drifts from somewhere beyond, mingling with the echo of drops falling from the ceiling." "description">>
<<horizontalStart>>
<<addDialogue"" "[[Head to the fork|MainCorridorPlantaBaja]]">>
<<if $mantinience isnot true>>
<<addDialogue "" "[[Continue down the corridor|LeftCorridorPB2]]">>
<<else>>
<<addDialogue "" "[[Maintenance corridor|LeftCorridorPB2]]">>
<</if>>
<<horizontalEnd>>
<<if $GlassSound isnot true>>
<<goto "GlassSoundEvent">>
<<else>>
<<set $enemyChance = random(5)>>
<<if $enemyChance lt 2>>
<<goto "LcpbEnemy">>
<</if>>
<</if>><<dialogue "" "You approach the door and inspect it cautiously. It’s firmly closed, and a small, worn sign barely lets you make out the word ‘Utility’" "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|Utilityroompb]]">>
<<addDialogue "" "[[Back|MirrorsCorridor2]]">>
<<horizontalEnd>>
<<set $opendoorleftpb = true>>
<<dialogue "" "A heavy noise shatters the silence. The gloom trembles as a shadow takes shape at the end of the hallway. Its silhouette moves forward—slow, yet inevitable—sniffing the air." "description">>
<<addDialogue "" "God… it can’t be… another one!" "thoughts">>
<<set $randomComent = random(2)>>
<<if $randomComent is 2>>
<<addDialogue "Patient" "Preetty… blonde… girl… huhhh… hmmm…" "talk">>
<<else>>
<<addDialogue "Patient" "Hmm... smells soo... good." "talk">>
<</if>>
<<addDialogue "Casey" "I don’t have time for this..." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Fight him|Lcpbfight]]">>
<<horizontalEnd>>
<<set $randomEnemy = random(3)>>
<<if $randomEnemy lt 2>>
<<showNPC "patient" "img/monsters/patients/patient.png" "Patient">>
<<else>>
<<showNPC "patient" "img/monsters/patients/patient2.png" "Patient">>
<</if>>
<<set $lpcbPelea = 1>>
<<set $EventPB1 = 1>><<dialogue "" "The hallway stretches into darkness. The peeling walls barely reflect the light, and each step echoes through the damp space. Rusted doors line the sides." "description">>
<<horizontalStart>>
<<if $RCpbdoor isnot true>>
<<addDialogue"" "[[Check door at the left|RCpbdoor]]">>
<<else>>
<<addDialogue"" "[[Enter room at the left|RCpbroom]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue"" "[[Head to the fork|MainCorridorPlantaBaja]]">>
<<if $cellspb isnot true>>
<<addDialogue "" "[[Continue down the corridor|RightCorridorPB2]]">>
<<else>>
<<addDialogue "" "[[Go to the isolation cells|RightCorridorPB2]]">>
<</if>>
<<horizontalEnd>>
<<if $shelvesItempb isnot true>>
<<dialogue "" "You search the shelves and find a small box with a few medium batteries still in good condition." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take batteries|shelvesbatteriespb|?!canPickupMediumBattery]]">>
<<addDialogue "" "[[Back|Utilityroompb]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "You check the shelves again, but there’s nothing useful left." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Utilityroompb]]">>
<<horizontalEnd>>
<</if>><<dialogue "" "You’re in a section of the hallway lined with several doors. The maintenance room is on your right; its door is open, and a faint light spills into the corridor. The hallway continues ahead and behind, connecting to other parts of the floor." "description">>
<<if $MantenimientoClosed is true>>
<<horizontalStart>>
<<addDialogue "" "[[Maintenace door|MantenimientoDoor]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Head to the fork|LeftCorridorPB2-2]]">>
<<if $MantenimientoClosed isnot true>>
<<addDialogue "" "[[Maintenace room|Mantenimiento]]">>
<</if>>
<<if $stairpb isnot true>>
<<addDialogue "" "[[Continue down the corridor|Sectionpb]]">>
<<else>>
<<addDialogue "" "[[Stairs section|Sectionpb]]">>
<</if>>
<<horizontalEnd>>
<<set $mantinience = true>>
<<script>>
window.setLighting(90);
<</script>><<if $Burp1 isnot true>>
<<dialogue "" "A constant, low metallic hum runs along the walls, accompanied by the vibration of pipes and cables crossing them. Suddenly, a loud, muffled burp echoes through the corridor, followed by a deep laugh." "description">>
<<addDialogue "Casey" "What? Was that..? a burp?" "talk">>
<<addDialogue "" "Well, at least I know there’s someone at the end…" "thoughts">>
<<set $Burp1 = true>>
<<else>>
<<if $FatManISdead isnot true>>
<<set $RandomBurp = random(5)>>
<<if $RandomBurp is 1>>
<<dialogue "" "A constant, low metallic hum runs along the walls, accompanied by the vibration of pipes and cables crossing them. Suddenly, a loud, muffled burp echoes through the corridor, followed by a deep laugh." "description">>
<<addDialogue "Casey" "What? Again…" "talk">>
<<else>>
<<dialogue "" "A constant, low metallic hum runs along the walls, accompanied by the vibration of pipes and cables crossing them." "description">>
<</if>>
<<else>>
<<dialogue "" "A constant, low metallic hum runs along the walls, accompanied by the vibration of pipes and cables crossing them." "description">>
<</if>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Head to the fork|LeftCorridorPB]]">>
<<if $mantinience isnot true>>
<<addDialogue "" "[[Continue down the corridor|LeftCorridorPB3]]">>
<<else>>
<<addDialogue "" "[[Maintenance corridor|LeftCorridorPB3]]">>
<</if>>
<<horizontalEnd>>
<<script>>
window.setLighting(80);
<</script>><<if window.gameState.lanternOn>>
<<goto "SectionpbLight">>
<<else>>
<<dialogue "" "The hallway turns sharply, forming a corner that cuts off your view. The gloom gathers there, and every sound stretches and distorts." "description">>
<<horizontalStart>>
<<if $mantinience isnot true>>
<<addDialogue "" "[[Continue down the corridor|LeftCorridorPB3]]">>
<<else>>
<<addDialogue "" "[[Maintenance section|LeftCorridorPB3]]">>
<</if>>
<<if $stairspb isnot true>>
<<addDialogue "" "[[Turn right|Escalerascorridorpb]]">>
<<else>>
<<addDialogue "" "[[Go to the stairs|Escalerascorridorpb]]">>
<</if>>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<<script>>
window.setLighting(70);
<</script>>
<</if>><<if $FatManISdead is true>>
<<dialogue "" "The place reeks of rust and rancid oil. In the corner, a dust-covered generator rests like a slumbering beast, though it emits a faint, steady hum. To one side, the electrical panel is crammed with tangled switches and wires, a few lights flickering erratically while a faint crackle cuts through the silence. On the floor, Bruno’s body lies slumped, unmoving, a harsh reminder of how quickly things turned violent." "description">>
<<else>>
<<if $BrunoSleep is true>>
<<dialogue "" "The maintenance room reeks of rust and rancid oil. In the corner, a dust-covered generator rests like a sleeping beast, emitting a faint, constant hum. To one side, the electrical panel is crammed with switches and tangled wires, a few lights flickering erratically as a faint crackle breaks the silence. By the door, Bruno sits on an old chair, his head tilted to the side and his mouth half open, completely asleep. His snores are out of this world." "description">>
<<else>>
<<if $NurseWithBruno isnot true>>
<<dialogue "" "The maintenance room reeks of rust and rancid oil. In the corner, a dust-covered generator rests like a sleeping beast, emitting a faint, constant hum. To one side, the electrical panel is crammed with switches and tangled wires, a few lights flickering erratically as a faint crackle breaks the silence. Beside the door, Bruno sits on an old chair, calmly flipping through one of his adult magazines. Next to him, a small mountain of similar magazines rises up." "description">>
<<else>>
<<dialogue "" "The maintenance room reeks of rust and rancid oil. In the corner, a dust-covered generator rests like a sleeping beast, emitting a faint, constant hum. To one side, the electrical panel is crammed with switches and tangled wires, a few lights flickering erratically as a faint crackle breaks the silence." "description">>
<</if>>
<</if>>
<</if>>
<<horizontalStart>>
<<if $FatManISdead is true && $BrunoBodyCheck isnot true>>
<<addDialogue "" "[[Check Bruno's body|BrunoBody]]">>
<</if>>
<<addDialogue "" "[[Check electrical panel|electricalpanel]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|LeftCorridorPB3]]">>
<<horizontalEnd>>
<<if $BrunoMeet is true>>
<<if $FatManISdead isnot true && $BrunoSleep isnot true>>
<<goto "Bruno">>
<</if>>
<<else>>
<<goto "BrunoMeet">>
<</if>><<if window.gameState.lanternOn>>
<<goto "EscalerascorridorpbLight">>
<<else>>
<<if $stairspb isnot true>>
<<dialogue "" "Your gaze stops at the door halfway down the hallway. Behind it, the hospital stairs wait in silence. The corridors to the left and right seem to vanish into the darkness." "description">>
<<else>>
<<dialogue "" "The hallway stretches ahead, dark and silent. To the left and right, the corridors disappear into the shadows, and halfway down the hallway are the hospital stairs." "description">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Turn left|Sectionpb]]">>
<<addDialogue "" "[[Stairs|HospitalStairspb]]">>
<<addDialogue "" "[[Turn right|Sectionpb2]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<<script>>
window.setLighting(70);
<</script>>
<</if>><<dialogue "" "The hallway stretches on for a few meters. The hospital stairs come into view, climbing into the gloom with rusted railings and worn steps." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go up the stairs|HospitalStairsPP1]]">>
<<addDialogue"" "[[Exit to this floor|Escalerascorridorpb]]">>
<<horizontalEnd>>
<<set $stairspb = true>>
<<if window.gameState.lanternOn>>
<<goto "SectionpbLight2">>
<<else>>
<<dialogue "" "The hallway turns sharply, forming a corner that blocks your view. The gloom accumulates in the curve, and darkness is almost complete." "description">>
<<horizontalStart>>
<<if $armariopb isnot true>>
<<addDialogue "" "[[Check door|armariopb]]">>
<<else>>
<<addDialogue "" "[[Check closet|armariopb]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Cells section|RightCorridorPB3]]">>
<<if $stairspb isnot true>>
<<addDialogue "" "[[Turn left|Escalerascorridorpb]]">>
<<else>>
<<addDialogue "" "[[Go to the stairs|Escalerascorridorpb]]">>
<</if>>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>><<dialogue "" "The hallway stretches ahead. To the south, a corridor disappears into the shadows, and above its entrance a sign reads: 'Isolation Cells'. The light barely reaches the corners, where shadows gather." "description">>
<<if $isolationTalk isnot true>>
<<addDialogue "Casey" "Isolation Cells… Why are they here? Pff… I don’t think the doctor is around, and it’s not like I want to go in either…" "talk">>
<<addDialogue "" "Why are they here..? I don’t think the doctor is around." "thoughts">>
<<addDialogue "Casey" "And it’s not like I want to go in either…" "talk">>
<<set $isolationTalk = true>>
<</if>>
<<horizontalStart>>
<<addDialogue"" "[[Head to the fork|RightCorridorPB]]">>
<<addDialogue"" "[[Isolation cells corridor|IsolationCells]]">>
<<if $stairspb isnot true>>
<<addDialogue "" "[[Continue down the corridor|RightCorridorPB3]]">>
<<else>>
<<addDialogue "" "[[Go to the stairs|RightCorridorPB3]]">>
<</if>>
<<horizontalEnd>>
<<set $cellspb = true>><<if window.gameState.lanternOn>>
<<goto "RightCorridorPBLight3">>
<<else>>
<<dialogue "" "The hallway feels emptier than it should. Chunks of paint hang from the walls, and the floor creaks under your feet. Every closed door seems to hold a secret, and a cold draft seeps in from some dark corner." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go to the isolation cells|RightCorridorPB2]]">>
<<if $stairspb isnot true>>
<<addDialogue "" "[[Continue down the corridor|Sectionpb2]]">>
<<else>>
<<addDialogue "" "[[Go to the stairs|Sectionpb2]]">>
<</if>>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<dialogue "" "The hallway feels emptier than it should. Chunks of paint hang from the walls, and the floor creaks under your feet. Every closed door seems to hold a secret, and a cold draft seeps in from some dark corner." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go to the isolation cells|RightCorridorPB2]]">>
<<if $stairspb isnot true>>
<<addDialogue "" "[[Continue down the corridor|Sectionpb2]]">>
<<else>>
<<addDialogue "" "[[Go to the stairs|Sectionpb2]]">>
<</if>>
<<horizontalEnd>><<dialogue "" "Each step echoes in the silence, the sound bouncing off the narrow walls. The rusted iron railing groans under your hand as you climb." "description">>
<<horizontalStart>>
<<addDialogue"" "[[Continue|HospitalStairsPP]]">>
<<horizontalEnd>>
<<dialogue "" "You stand directly before the ground floor stairs. Their corroded railings and worn steps rise like silent witnesses of time, enduring the decay that surrounds everything." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go down the stairs|HospitalStairsPP2]]">>
<<addDialogue"" "[[Exit to this floor|Right Hallway]]">>
<<addDialogue "" "[[Go up the stairs|HospitalStairsPP3]]">>
<<horizontalEnd>>
<<if $inside is true>>
<<set $inside = false>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('rottenwalls.mp3', 4000);
}, 1000);
<</script>>
<</if>><<dialogue "" "The descent feels endless. The damp, slippery steps drag you down with every move. The echo of your footsteps fades into a suffocating silence." "description">>
<<horizontalStart>>
<<addDialogue"" "[[Continue|HospitalStairspb]]">>
<<horizontalEnd>><<dialogue "" "The ground-floor hallway opens in silence. The air, thick with dust, carries a lingering metallic scent that seems to seep from every corner." "description">>
<<if $DoorRightCorridor isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check door|MainLobbyDoor]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<if $DoorRightCorridor is true>>
<<addDialogue "" "[[Entrance|MainLobby]]">>
<</if>>
<<addDialogue"" "[[Stairs|HospitalStairsPP]]">>
<<horizontalEnd>><<dialogue "" "You approach the door and inspect it. A sign reads 'Ground Floor'. It looks like someone closed it from this side." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Unlock door|openStairsDoor]]">>
<<addDialogue"" "[[Back|Right Hallway]]">>
<<horizontalEnd>><<dialogue "" "You move the latch, and the door opens with a metallic creak, revealing the hospital’s entrance, silent and dust-covered." "description">>
<<addDialogue "Casey" "Great, here I am again… Well, at least this door makes a pretty handy shortcut." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|MainLobby]]">>
<<horizontalEnd>>
<<set $DoorRightCorridor = true>><<dialogue "" "The hallway turns sharply, forming a corner that blocks your view. The gloom gathers in the curve, and your shadow seems to cling to the walls as you move forward. A cloud of dust rises before you in the beam of your flashlight." "description">>
<<horizontalStart>>
<<if $armariopb isnot true>>
<<addDialogue "" "[[Check door|armariopb]]">>
<<else>>
<<addDialogue "" "[[Check closet|armariopb]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Cells section|RightCorridorPB3]]">>
<<if $stairspb isnot true>>
<<addDialogue "" "[[Turn left|Escalerascorridorpb]]">>
<<else>>
<<addDialogue "" "[[Go to the stairs|Escalerascorridorpb]]">>
<</if>>
<<horizontalEnd>>
<<set $enemyChance = random(5)>>
<<if $enemyChance lt 2>>
<<goto "LcpbEnemy2">>
<</if>><<dialogue "" "The hallway turns sharply, forming a corner that cuts off your view. The gloom gathers there, and every sound stretches and distorts." "description">>
<<horizontalStart>>
<<if $mantinience isnot true>>
<<addDialogue "" "[[Continue down the corridor|LeftCorridorPB3]]">>
<<else>>
<<addDialogue "" "[[Maintenance section|LeftCorridorPB3]]">>
<</if>>
<<if $stairspb isnot true>>
<<addDialogue "" "[[Turn right|Escalerascorridorpb]]">>
<<else>>
<<addDialogue "" "[[Go to the stairs|Escalerascorridorpb]]">>
<</if>>
<<horizontalEnd>>
<<script>>
window.setLighting(80);
<</script>><<if $stairspb isnot true>>
<<dialogue "" "Your gaze stops at the door halfway down the hallway. Behind it, the hospital stairs wait in silence. The corridors to the left and right seem to vanish into the darkness." "description">>
<<else>>
<<dialogue "" "The hallway stretches ahead, dark and silent. To the left and right, the corridors disappear into the shadows, and halfway down the hallway are the hospital stairs." "description">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Turn left|Sectionpb]]">>
<<addDialogue "" "[[Stairs|HospitalStairspb]]">>
<<addDialogue "" "[[Turn right|Sectionpb2]]">>
<<horizontalEnd>>
<<script>>
window.setLighting(80);
<</script>><<if window.gameState.lanternOn>>
<<goto "LeftCorridorPBLight2-2">>
<<else>>
<<dialogue "" "A constant, low metallic hum runs along the walls, accompanied by the vibration of pipes and cables crossing them." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Head to the fork|LeftCorridorPB]]">>
<<if $mantinience isnot true>>
<<addDialogue "" "[[Continue down the corridor|LeftCorridorPB3]]">>
<<else>>
<<addDialogue "" "[[Maintenance corridor|LeftCorridorPB3]]">>
<</if>>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<<script>>
window.setLighting(70);
<</script>>
<</if>><<dialogue "" "A constant, low metallic hum runs along the walls, accompanied by the vibration of pipes and cables crossing them." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Head to the fork|LeftCorridorPB]]">>
<<if $mantinience isnot true>>
<<addDialogue "" "[[Continue down the corridor|LeftCorridorPB3]]">>
<<else>>
<<addDialogue "" "[[Maintenance corridor|LeftCorridorPB3]]">>
<</if>>
<<horizontalEnd>>
<<script>>
window.setLighting(80);
<</script>><<dialogue "" "You take the medium batteries and stash them away." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Utilityroompb]]">>
<<horizontalEnd>>
<<set $shelvesItempb = true>>
<<addItem "medium_battery" 6>> <<if window.gameState.lanternOn>>
<<goto "IsolationCellsLight">>
<<else>>
<<dialogue "" "On either side, reinforced doors line up like a procession of sealed tombs. You can barely see through the darkness, and you catch a sour smell mixed with the staleness of damp air." "description">>
<<horizontalStart>>
<<if $icdoor1 isnot true>>
<<addDialogue "" "[[Check door at left|cell01door]]">>
<<else>>
<<addDialogue "" "[[Cell 01|Cell01]]">>
<</if>>
<<if $icdoor3 isnot true>>
<<addDialogue "" "[[Check second door at left|cell03door]]">>
<<else>>
<<addDialogue "" "[[Cell 03|Cell03]]">>
<</if>>
<<if $icsecuritydoor isnot true>>
<<addDialogue "" "[[Check security door|SRdoor]]">>
<<else>>
<<addDialogue "" "[[Security room|SRic]]">>
<</if>>
<<if $icdoor2 isnot true>>
<<addDialogue "" "[[Check first door at right|cell02door]]">>
<<else>>
<<addDialogue "" "[[Cell 02|Cell02]]">>
<</if>>
<<if $icdoor4 isnot true>>
<<addDialogue "" "[[Check second door at right|cell04door]]">>
<<else>>
<<addDialogue "" "[[Cell 04|Cell04]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Head to the fork|RightCorridorPB2]]">>
<<if $sotanodoor isnot true>>
<<addDialogue"" "[[Continue down the isolation cells|IsolationCells2]]">>
<<else>>
<<addDialogue"" "[[Go to basement|IsolationCells2]]">>
<</if>>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<<script>>
window.setLighting(60);
<</script>>
<</if>>
<<if window.gameState.lanternOn>>
<<goto "IsolationCellsLight2">>
<<else>>
<<dialogue "" "As you move down the corridor, reinforced doors line both sides, closed and solid, forming a straight hallway that seems to stretch endlessly." "description">>
<<horizontalStart>>
<<if $icdoor5 isnot true>>
<<addDialogue "" "[[Check door at left|cell05door]]">>
<<else>>
<<addDialogue "" "[[Cell 05|Cell05]]">>
<</if>>
<<if $icdoor6 isnot true>>
<<addDialogue "" "[[Check door at right|cell06door]]">>
<<else>>
<<addDialogue "" "[[Cell 06|Cell06]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Head to the fork|IsolationCells]]">>
<<if $sotanodoor isnot true>>
<<addDialogue"" "[[Continue down the isolation cells|IsolationCells3]]">>
<<else>>
<<addDialogue"" "[[Go to basement|IsolationCells3]]">>
<</if>>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>><<dialogue "" "The beam of your flashlight barely cuts through the haze of dust in the air. On either side, reinforced doors line up like a procession of sealed tombs. The rusted metal gives off a sour stench, mixed with the reek of stale dampness." "description">>
<<horizontalStart>>
<<if $icdoor1 isnot true>>
<<addDialogue "" "[[Check door at left|cell01door]]">>
<<else>>
<<addDialogue "" "[[Cell 01|Cell01]]">>
<</if>>
<<if $icdoor3 isnot true>>
<<addDialogue "" "[[Check second door at left|cell03door]]">>
<<else>>
<<addDialogue "" "[[Cell 03|Cell03]]">>
<</if>>
<<if $icsecuritydoor isnot true>>
<<addDialogue "" "[[Check security door|SRdoor]]">>
<<else>>
<<addDialogue "" "[[Security room|SRic]]">>
<</if>>
<<if $icdoor2 isnot true>>
<<addDialogue "" "[[Check first door at right|cell02door]]">>
<<else>>
<<addDialogue "" "[[Cell 02|Cell02]]">>
<</if>>
<<if $icdoor4 isnot true>>
<<addDialogue "" "[[Check second door at right|cell04door]]">>
<<else>>
<<addDialogue "" "[[Cell 04|Cell04]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Head to the fork|RightCorridorPB2]]">>
<<if $sotanodoor isnot true>>
<<addDialogue"" "[[Continue down the isolation cells|IsolationCells2]]">>
<<else>>
<<addDialogue"" "[[Go to basement|IsolationCells2]]">>
<</if>>
<<horizontalEnd>>
<<script>>
window.setLighting(80);
<</script>><<dialogue "" "The beam of your flashlight sweeps down the corridor. Reinforced doors line both sides, closed and solid, as the light casts straight shadows across the cracked walls." "description">>
<<horizontalStart>>
<<if $icdoor5 isnot true>>
<<addDialogue "" "[[Check door at left|cell05door]]">>
<<else>>
<<addDialogue "" "[[Cell 05|Cell05]]">>
<</if>>
<<if $icdoor6 isnot true>>
<<addDialogue "" "[[Check door at right|cell06door]]">>
<<else>>
<<addDialogue "" "[[Cell 06|Cell06]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Head to the fork|IsolationCells]]">>
<<if $sotanodoor isnot true>>
<<addDialogue"" "[[Continue down the isolation cells|IsolationCells3]]">>
<<else>>
<<addDialogue"" "[[Go to basement|IsolationCells3]]">>
<</if>>
<<horizontalEnd>> <<if $randomEnemy lt 2>>
<<run startAdvancedBattle([
{
type: 'Patient',
hp: 110,
distance: 30,
randomDistance: false,
speed: "2-5",
minMovement: 2,
maxMovement: 5,
damage: 0,
DamageIgnore: {
'pistol': 0.4,
'rifle': 0.2,
'shotgun': 0.0,
'melee': 0.2,
'incendiary': 0.0,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.2,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<else>>
<<run startAdvancedBattle([
{
type: 'Patient2',
hp: 110,
distance: 30,
randomDistance: false,
speed: "2-5",
minMovement: 2,
maxMovement: 5,
damage: 0,
DamageIgnore: {
'pistol': 0.4,
'rifle': 0.2,
'shotgun': 0.0,
'melee': 0.2,
'incendiary': 0.0,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.2,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', false)>>
<</if>>
<<if window.ClothingSystem.currentClothes === 'jacket'>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<elseif window.ClothingSystem.currentClothes === 'coat'>>
<<setAvatarDirect "caseycoatpistol.png">>
<<else>>
<<setAvatarDirect "caseycoatpistol.png">>
<</if>><<set $randomBotiquin = random(4)>>
<<if $randomBotiquin gte 2>>
<<dialogue "" "You approach the corpse cautiously, the metallic stench of blood still fresh in the air. As you lean closer, you discover a medkit strapped to his waist, stained but intact." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take medkit|LcpbItem|?!canPickupMedkit]]">>
<<addDialogue "" "[[Let it|LeftCorridorPB]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "The patient staggers, his glassy eyes searching for a nonexistent point in the gloom. He falls to his knees, gasping like a dying animal. A final spasm shakes his body before he collapses completely to the floor, lying still." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" "Damn it! This place is madness... and it’s starting to get under my skin." "talk">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Continue|LeftCorridorPB]]">>
<<horizontalEnd>>
<</if>>
<<set $lpcbPelea = 0>><<dialogue "" "You tuck the medkit into your bag." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "" "This will come in handy… though I’d rather not have to take it like this." "thoughts">>
<<addDialogue "Casey" "Damn it! And still, I’m left with a bitter taste in my mouth." "talk">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Continue|LeftCorridorPB]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('medkit', 1);<</script>><<dialogue "" "A sudden thud echoes through the corridor. The shadows stir as a twisted figure staggers into view, dragging its feet against the floor." "description">>
<<addDialogue "" "Shit… not again…" "thoughts">>
<<set $randomComent = random(2)>>
<<if $randomComent is 2>>
<<addDialogue "Patient" "Heh… pretty face… pretty… pretty…" "talk">>
<<else>>
<<addDialogue "Patient" "Hungryyy… so… hungryyy…" "talk">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Fight him|Lcpbfight2]]">>
<<horizontalEnd>>
<<set $randomEnemy = random(3)>>
<<if $randomEnemy lt 2>>
<<showNPC "patient" "img/monsters/patients/fastPatient.png" "Patient">>
<<else>>
<<showNPC "patient" "img/monsters/patients/madpatient.png" "Patient">>
<</if>>
<<set $lpcbPelea2 = 1>>
<<set $EventPB2 = 1>><<if window.gameState.lanternOn>>
<<goto "Cell02Light">>
<<else>>
<<dialogue "" "You see nothing, the darkness is absolute, as if the world had disappeared around you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|IsolationCells]]">>
<<horizontalEnd>>
<</if>><<if window.gameState.lanternOn>>
<<goto "Cell04Light">>
<<else>>
<<dialogue "" "Everything is swallowed by darkness; I can’t make out a single shape in front of me." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|IsolationCells]]">>
<<horizontalEnd>>
<</if>><<dialogue "" "The cell door isn’t closed; you can open it without difficulty. The sign marked with the number '04' is scratched and stained. A rancid smell seeps out from the entrance." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|Cell04]]">>
<<addDialogue "" "[[Back|IsolationCells]]">>
<<horizontalEnd>>
<<set $icdoor4 = true>><<dialogue "" "The cell door is unlocked. A rusted sign with the number '02' marks its identity. Faint whispers come from inside." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" "Damn, maybe I shouldn’t go in…" "talk">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Enter|Cell02]]">>
<<addDialogue "" "[[Back|IsolationCells]]">>
<<horizontalEnd>>
<<set $icdoor2 = true>><<dialogue "" "The cell door is open. A metal sign with the number '01' hangs slightly crooked to one side. The darkness inside seems to swallow the light." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|Cell01]]">>
<<addDialogue "" "[[Back|IsolationCells]]">>
<<horizontalEnd>>
<<set $icdoor1 = true>><<if window.gameState.lanternOn>>
<<goto "Cell01Light">>
<<else>>
<<dialogue "" "You feel surrounded by endless emptiness, with nothing visible around you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|IsolationCells]]">>
<<horizontalEnd>>
<</if>><<dialogue "" "The door to cell is jammed, but it looks like you could push it open. A metal sign with the number '03' hangs crooked to one side." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" "I’m not sure opening this is such a good idea…" "talk">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Push door|EnemyCell03]]">>
<<addDialogue "" "[[Back|IsolationCells]]">>
<<horizontalEnd>>
<<dialogue "" "The security room that oversees the isolation cells is small and oppressive. A row of old monitors lines the main wall, many of them switched off or showing nothing but static. In the center stands a cluttered desk with scattered papers and a computer, while the only flickering light comes from a faulty lamp that barely illuminates the room." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check desk|SRicdesk]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|IsolationCells]]">>
<<horizontalEnd>><<dialogue "" "The heavy security door, which should be locked and secured, stands slightly ajar." "description">>
<<dialogue "" "Strange… I can’t tell if this is a stroke of luck, or a sign that something bad is about to happen." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|SRic]]">>
<<addDialogue "" "[[Back|IsolationCells]]">>
<<horizontalEnd>>
<<set $icsecuritydoor = true>> <<if $randomEnemy lt 2>>
<<run startAdvancedBattle([
{
type: 'fastPatient',
hp: 90,
distance: 40,
randomDistance: true,
speed: "5-8",
minMovement: 5,
maxMovement: 8,
damage: 8,
DamageIgnore: {
'pistol': 0.4,
'rifle': 0.2,
'shotgun': 0.0,
'melee': 0.2,
'incendiary': 0.0,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.2,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<else>>
<<run startAdvancedBattle([
{
type: 'madPatient',
hp: 110,
distance: 30,
randomDistance: true,
speed: "3-6",
damage: 10,
DamageIgnore: {
'pistol': 0.4,
'rifle': 0.2,
'shotgun': 0.0,
'melee': 0.2,
'incendiary': 0.0,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.2,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', false)>>
<</if>>
<<if window.ClothingSystem.currentClothes === 'jacket'>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<elseif window.ClothingSystem.currentClothes === 'coat'>>
<<setAvatarDirect "caseycoatpistol.png">>
<<else>>
<<setAvatarDirect "caseycoatpistol.png">>
<</if>><<set $randomPills = random(4)>>
<<if $randomPills gte 2>>
<<dialogue "" "The patient staggers backward, clutching at his chest as if trying to grasp something unseen. A guttural wheeze escapes his throat, followed by a violent spasm that twists his body unnaturally. His legs give out and he crashes to the floor with a hollow thud, twitching once before falling completely still. As his body hits the ground, a small packet of calming pills slips from his pocket." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take pills|LcpbItem2|?!canPickupPills]]">>
<<addDialogue "" "[[Let it|Sectionpb2]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "The patient stumbles back, clutching at his chest as if grasping for something unseen. A guttural wheeze escapes his throat, followed by a violent tremor that bends his body unnaturally. His legs give out, and he crashes onto the floor with a hollow thud, twitching once before falling utterly still." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Sectionpb2]]">>
<<horizontalEnd>>
<</if>>
<<set $lpcbPelea2 = 0>><<dialogue "" "You slip the small packet of pills into your bag, contains x4 calming pills" "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" "I shouldn’t be surprised that they’re loaded with drugs… but still…" "talk">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Continue|LeftCorridorPB]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('pills', 4);<</script>><<dialogue "" "You push the door hard, and it swings open with a deafening creak that reverberates down the hallway. Everything seems to shake around you, and something moves in the shadows." "description">>
<<addDialogue "" "Shit… this wasn’t supposed to go wrong." "thoughts">>
<<dialogue "" "The creature lunges at you with clumsy yet dangerously quick movements. You try to step back, but a swipe tears your jacket and knocks you off balance." "description">>
<<addDialogue "Casey" "No, no, no! Damn it!" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|ECenemy]]">>
<<horizontalEnd>>
<<set $icdoor3 = true>>
<<set $cell03pelea = 1>>
<<set $EventCell03 = 1>> <<run startAdvancedBattle([
{
type: 'shadowCreature2',
hp: 120,
distance: 40,
randomDistance: true,
speed: "6-9",
minMovement: 6,
maxMovement: 9,
damage: 22,
DamageIgnore: {
'pistol': 0.5,
'rifle': 0.4,
'shotgun': 0.1,
'melee': 0.2,
'incendiary': 0.0,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.2,
'.45': 0.2,
'slugs': 0.1
}
},
], 'VictoryPassage', false, 'CombatEscape', false)>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<if window.gameState.lanternOn>>
<<goto "Cell05Light">>
<<else>>
<<if $nurseStopSuck isnot true>>
<<dialogue "" "The room is swallowed by absolute darkness. Suddenly, a sound breaks the silence: slurp… slurp… A wet, viscous noise, like someone sucking with their mouth. It echoes through the darkness, irregular, as if coming from a corner of the room. Your eyes struggle to adjust, but you see nothing. Only the sticky echo of that suction, closer now, more insistent." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Get close|NurseSuck]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "There is no light at all, only absolute darkness that blocks your sight." "description">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|IsolationCells2]]">>
<<horizontalEnd>>
<</if>><<dialogue "" "The door marked '05' is blocked. It cannot be opened." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Try to pick the lock|cell05Lock]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Back|IsolationCells2]]">>
<<horizontalEnd>><<dialogue "" "The cell door stands ajar, easy to push open. The number '06' is barely readable on a scratched and stained sign." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|Cell06]]">>
<<addDialogue "" "[[Back|IsolationCells2]]">>
<<horizontalEnd>>
<<dialogue "" "You’ve managed to unlock the door with the lockpick. You can open it now." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|Cell05]]">>
<<addDialogue "" "[[Back|IsolationCells2]]">>
<<horizontalEnd>>
<<set $icdoor5 = true>><<if window.gameState.lanternOn>>
<<goto "Cell06Light">>
<<else>>
<<if $PregnantPatientPB is true>>
<<dialogue "" "You try to focus, but the blackness covers everything; nothing can be seen." "description">>
<<else>>
<<dialogue "" "You try to focus, but the blackness covers everything; nothing can be seen. In the distance, you can hear the desperate screams of a woman, echoing through the darkness." "description">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Get close|PregnantPatientPB]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|IsolationCells2]]">>
<<horizontalEnd>>
<</if>>
<<set $icdoor6 = true>><<if window.gameState.lanternOn>>
<<goto "IsolationCellsLight3">>
<<else>>
<<dialogue "" "The corridor stretches long and narrow, flanked by isolation cells on both sides. Each one lies silent, with its rusted metal doors. Darkness rules the place, and at the end of the corridor, a door can be seen." "description">>
<<horizontalStart>>
<<if $icdoor7 isnot true || $ClosedDoor07 is true>>
<<addDialogue "" "[[Check door at left|cell07door]]">>
<<else>>
<<addDialogue "" "[[Cell 07|Cell07]]">>
<</if>>
<<if $icdoor9 isnot true>>
<<addDialogue "" "[[Check second door at left|cell09door]]">>
<<else>>
<<addDialogue "" "[[Cell 09|Cell09]]">>
<</if>>
<<if $icdoor8 isnot true>>
<<addDialogue "" "[[Check door at right|cell08door]]">>
<<else>>
<<addDialogue "" "[[Cell 08|Cell08]]">>
<</if>>
<<if $icdoor10 isnot true>>
<<addDialogue "" "[[Check second door at right|cell10door]]">>
<<else>>
<<addDialogue "" "[[Cell 10|Cell10]]">>
<</if>>
<<if $sotanodoorOpen isnot true>>
<<addDialogue "" "[[Check front door|Pb2Door]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Head to the fork|IsolationCells2]]">>
<<if $sotanodoor is true>>
<<addDialogue"" "[[Basement stairs|BasamentStairs]]">>
<</if>>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>><<dialogue "" "When you take down the monster, it falls to the ground with a dull thud. Among its remains, you notice something shiny: x15 9mm hollow-point ammunition." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take ammo|Ammocell03Pelea|?!canPickupPistolAmmo]]">>
<<addDialogue "" "[[Let it|IsolationCells]]">>
<<horizontalEnd>>
<<set $cell03pelea = 2>><<dialogue "" "The walls of the cell appear padded, though they are marked with cracks and stains accumulated over years of neglect. The space is narrow, barely enough for a single bed pressed against one side. In the corner, a small nightstand stands beside the bed, showing the wear of time. Near the ceiling, a small ventilation system lets in only a thin thread of air, reinforcing the feeling of confinement." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check nightstand|nightstandIC02]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|IsolationCells]]">>
<<horizontalEnd>><<if $pagecell02 isnot true>>
<<dialogue "" "The cell is a complete mess. The bed lies upside down, stripped of its mattress, as if something or someone had hurled it against the wall in a fit of rage. Among the dust and debris, you spot a page lying on the floor." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take lying page|pagecell04]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "The cell is a complete mess. The bed lies upside down, stripped of its mattress, as if something or someone had hurled it against the wall in a fit of rage. The floor is bare, offering nothing but silence and decay." "description">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|IsolationCells]]">>
<<horizontalEnd>>
<<dialogue "" "Isolation Cell 01 lies empty, silent, and cold, with only a small, solitary cabinet tucked into a corner, like a mute witness to whatever once happened here." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check cabinet|Cabinetcell01]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|IsolationCells]]">>
<<horizontalEnd>><<if window.gameState.lanternOn>>
<<goto "Cell03Light">>
<<else>>
<<dialogue "" "The blackness is so dense that your eyes are useless—you can’t see a thing." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|IsolationCells]]">>
<<horizontalEnd>>
<</if>><<dialogue "" "The isolation room is completely empty. There is no trace of furniture or objects, only the cold echo of the bare walls." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" "For this... php..." "talk">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|IsolationCells]]">>
<<horizontalEnd>>
<</if>><<dialogue "" "The cell reeks of stale rot. The iron bed is rusted and twisted, with no trace of a mattress. On the floor, near the wall, there are scratch marks that look as if they were carved in sheer desperation." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|IsolationCells2]]">>
<<horizontalEnd>>
<<if $nurseStopSuck isnot true>>
<<goto"NurseSuck">>
<</if>><<dialogue "" "The padded walls are torn in several places, with yellowed stuffing spilling out like open wounds. The silence is suffocating, broken only by the drip of water from a crack in the ceiling. There are no furnishings or objects—only the lingering sense that someone once unleashed a fit of rage here before vanishing." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|IsolationCells2]]">>
<<horizontalEnd>>
<<if $PregnantPatientPB isnot true>>
<<goto "PregnantPatientPB">>
<</if>>
<<if $bandagescell02 isnot true>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "You check the drawers of the small nightstand, one by one. The first is empty, only dust gathered in the corners. The second contains a couple of crumpled papers, nothing of interest. When you open the third, your fingers brush against something soft and rolled up: three neatly folded bandages." "description">>
<<default>>
<<dialogue "" "Without wasting time, you open the third drawer of the nightstand. Your fingers immediately brush against something soft and rolled up: three neatly folded bandages, waiting silently to be used." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Take bandages|bandagesIC02|?!canPickupBandages]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "You open the nightstand drawer, but just emptiness and the faint smell of dust lingering." "description">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Back|Cell02]]">>
<<horizontalEnd>><<dialogue "" "You pick up the bandages and put them in your backpack." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Cell02]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('bandages', 3);<</script>>
<<set $bandagescell02 = true>><<dialogue "" "You hold the page in your hands and read it carefully before putting it away, trying to understand its meaning." "description">>
<<addDialogue "" "It looks like a diary page; maybe it says something interesting." "thoughts">>
<<addImageV "img/documents/karlsen_note_day10.png">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Cell04]]">>
<<horizontalEnd>>
<<set $pagecell02 = true>>
<<script>>
window.addDocumentWithNotification(
"karlsen_note_day20",
"Diary Note",
"Torn and stained note titled 'Day 20 of the incubation protocol' by Dr. Karlsen.",
"",
"close_photo",
"📋",
{
imagePath: "img/documents/karlsen_note_day20.png",
location: "Found it in an isolation cell at the Charles Francis Psychiatric Hospital",
photographer: "Doctor Karlsen",
frontDescription: "A torn note from Dr. Karlsen's diary. It appears to be a journal entry or research log related to the experiments conducted within the hospital."
}
);
<</script>>
<<script>>
playSoundDirect('page.mp3');
<</script>><<dialogue "" "You quickly pick it up, knowing that every bullet could make the difference in what lies ahead." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|IsolationCells]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('pistol_ammo_expansive', 15);<</script>><<if $ammocell01 isnot true>>
<<dialogue "" "You open the small cabinet and check inside, finding shotgun shells neatly stacked in a box." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take shells|AmmoCell01|?!canPickupShotgunShells]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "You open the small cabinet again, but it’s empty. Nothing remains inside." "description">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Back|Cell01]]">>
<<horizontalEnd>><<dialogue "" "You pick up the ammunition and store it in your backpack." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Cell01]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('shotgun_shells', 12);<</script>>
<<set $ammocell01 = true>><<dialogue "" "The door is firmly shut, its cold metal surface scarred with rust and wear. At eye level, an old crooked sign hangs from a rusty nail. The faded letters spell out a single word: 'Sublevel B2'." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Back|IsolationCells3]]">>
<<horizontalEnd>>
<<dialogue "" "You can't go in there yet." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Isolation Cells|IsolationCells3]]">>
<<horizontalEnd>>
<<dialogue "" "The patient strikes you down with a brutal blow. Your body collapses, too weak to move. Cold, rough hands grab you by the arms and drag you across the floor without mercy. The scraping sound echoes in your ears as your vision begins to fade." "description">>
<<addDialogue "" "No… I have to… fight back…" "thoughts">>
<<addDialogue "" "Your breathing weakens. Consciousness slowly slips away as you’re dragged into the darkness." "description">>
<<addVideo "media/casey/kidnap.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|EPB1-2]]">>
<<addDialogue "" "<a tabindex="0" role="button" id="save-button">Load Game</a>">>
<<horizontalEnd>>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<script>>
window.HealthSanitySystem.addHealth(50)
<</script>>
<<set $EventPB1 = 0>>
<<unlockVideo 1 15>><<dialogue "" "The patient strikes you down with a brutal blow. Your body collapses, too weak to move. Cold, rough hands grab you by the arms and drag you across the floor without mercy. The scraping sound echoes in your ears as your vision begins to fade." "description">>
<<addDialogue "" "No… I have to… fight back…" "thoughts">>
<<addDialogue "" "Your breathing weakens. Consciousness slowly slips away as you’re dragged into the darkness." "description">>
<<addVideo "media/casey/kidnap.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|EPB2-2]]">>
<<addDialogue "" "<a tabindex="0" role="button" id="save-button">Load Game</a>">>
<<horizontalEnd>>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<script>>
window.HealthSanitySystem.addHealth(50)
<</script>>
<<set $EventPB1 = 0>>
<<include "Change_MenuIMG">>
<<unlockVideo 1 15>><<dialogue "" "You approach the desk and notice that, despite the layer of dust, the computer still works; its screen flickers weakly, but it’s on. The desk has a closed drawer." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check pc|saveIC]]">>
<<addDialogue "" "[[Check drawers|drawerIC]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Back|SRic]]">>
<<horizontalEnd>> <<dialogue "" "The computer is on." "description">>
<<addImage "img/events/desk1.png">>
<<horizontalStart>>
<<addDialogue "" "<div class='main-menu-btn' id='save-button'>Save/Load</div>">>
<<horizontalEnd>>
<<addDialoguePos "" "[[Go back|SRicdesk]]" "center">>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>><<if $checkICdrawer isnot true>>
<<dialogue "" "You pull the drawer open with a faint metallic creak, and to your surprise, inside lies a pistol recoil compensator. The metal piece looks worn with age, yet still functional," "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take compensator|prcIC|?inventoryFull]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "You open the drawer carefully, but there’s nothing inside." "description">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Back|SRicdesk]]">>
<<horizontalEnd>> <<dialogue "" "You carefully tuck the pistol recoil compensator into your bag." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|SRicdesk]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('pistol_recoil_compensator', 1);<</script>>
<<set $checkICdrawer = true>><<switch visited()>>
<<dialogue "" "You approach the maintenance room, but as soon as you step inside, Bruno rises from his old chair and blocks your way." "description">>
<<case 1>>
<<addDialogue "Bruno" "You again… how many times do I have to repeat it? You’re not allowed in here." "talk">>
<<addDialogue "Casey" "What are you hiding in there?" "talk">>
<<addDialogue "Bruno" "Nothing that concerns you! Orders are orders, and I’m not losing my job just to let you through." "talk">>
<<addDialogue "" "His tone sounds tired but firm. His heavy frame blocks the doorway with surprising determination." "description">>
<<addDialogue "" "Damn it… there’s nothing I can do with this big guy standing here." "thoughts">>
<<addDialogue "Bruno" "What are you staring at? Go on, get lost! You’re bothering me, I want to keep looking at tits… I mean, reading…" "talk">>
<<addDialogue "" "Bruno slumps back into the old wooden chair, which creaks under his weight, and picks up his magazine with a careless gesture. He takes a long sip of his beer, the glass fogged with condensation, while chewing on a protein bar." "description">>
<<default>>
<<addDialogue "Bruno" "You again… how many times do I have to repeat it? You’re not allowed in here." "talk">>
<<addDialogue "Casey" "What are you hiding in there?" "talk">>
<<addDialogue "Bruno" "Nothing that concerns you! Orders are orders, and I’m not losing my job just to let you through." "talk">>
<</switch>>
<<addDialogue "" "Maybe I can do something..." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[What orders are those?|BrunoQuestion]]">>
<<addDialogue "" "[[Try to seduce him|seduceBruno]]">>
<<addDialogue "" "[[Exit|LeftCorridorPB3]]">>
<<horizontalEnd>>
<<showNPC "bruno" "img/characters/bruno/bruno.png" "Bruno">><<dialogue "" "The maintenance room is lit by a dim light coming from a corner, where a burly man flips through an adult magazine. Empty and broken beer bottles crunch under your feet as you step forward, and an old portable fridge leans against the wall next to a pile of magazines. The man lifts his eyes from the magazine and frowns at you, clearly annoyed by your presence." "description">>
<<addDialogue "Bruno" "What are you staring at? Get out of here! And leave me alone." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Introduce Yourself|BrunoMeet2]]">>
<<horizontalEnd>>
<<showNPC "bruno" "img/characters/bruno/bruno.png" "Bruno">><<dialogue "Casey" "I’m Detective..." "talk">>
<<addDialogue "Bruno" "I don’t care! Get out!" "talk">>
<<addDialogue "Casey" "I’m investigating a kidnapping case!" "talk">>
<<addDialogue "Bruno" "I told you that…" "talk">>
<<addDialogue "" "Bruno’s eyes drop for a moment and settle on your chest, without looking away." "description">>
<<addDialogue "" "This guy… he’s staring at my chest…" "thoughts">>
<<addDialogue "Casey" "My name is Casey." "talk">>
<<addDialogue "Bruno" "I’m Bruno. The doctor ordered me to keep watch over this room." "talk">>
<<addDialogue "Casey" "Does that mean no one is allowed in?" "talk">>
<<addDialogue "Bruno" "Exactly. No one enters or leaves without authorization. And I’m not going to break the rules." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[I nedd to inspect the room|BrunoMeet3]]">>
<<horizontalEnd>>
<<showNPC "bruno" "img/characters/bruno/bruno.png" "Bruno">><<dialogue "" "If he wants to keep me out, I’ll have to play the cards I’ve got…" "thoughts">>
<<addDialogue "Casey" "It looks like this generator hasn’t been checked in weeks. It could fail at any moment. Wouldn’t you be worried if something broke?" "talk">>
<<addDialogue "Bruno" "That’s none of your business! My job is to watch this room, not worry about the generator." "talk">>
<<addDialogue "Casey" "I’m just pointing out a risk. If something goes wrong, you wouldn’t want the doctor to get angry, would you?" "talk">>
<<addDialogue "Bruno" "I told you to leave! I’m not letting anyone in here…" "talk">>
<<addDialogue "" "His eyes drop for a moment, drifting toward your chest before he quickly recovers. He presses his lips together, frowns, and crosses his arms, fully blocking the way. His anger is obvious; there’s no sign he’s going to give in." "description">>
<<addDialogue "" "Alright… this isn’t going to be easy. I’ll have to find another way." "thoughts">>
<<addDialogue "Casey" "Fine… I’m leaving." "talk">>
<<addDialogue "" "Bruno sighs with satisfaction and leans back in his chair, crossing his arms with a triumphant air. He picks up his magazine again, savoring the feeling of having maintained control of the situation, as if nothing had happened." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Leave|LeftCorridorPB3]]">>
<<horizontalEnd>>
<<showNPC "bruno" "img/characters/bruno/bruno.png" "Bruno">><<dialogue "" "You step into the cell 06 and are hit by a sharp, metallic stench. In the center of the room, a pregnant woman is on the floor, moaning in pain. Her eyes widen as she sees you, wild and filled with fury." "description">>
<<addDialogue "" "Ohh my... What the fuck is this?" "thoughts">>
<<addDialogue "Casey" "Hi… I’m here to help you. Stay calm." "talk">>
<<addDialogue "Patient" "No! I don’t want to see it! Don’t take it from me, don’t touch me! No one can have it!." "talk">>
<<addDialogue "" "She rises to her feet, her movements wild, as if she’s about to attack." "description">>
<<addDialogue "Patient" "Get out! I swear, if you come closer, I’ll kill you!" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Try to talk|PregnantPatientPB2]]">>
<<addDialogue "" "[[Fight|PregantEnemyPB]]">>
<<horizontalEnd>>
<<set $PregnantPatientPB = true>>
<<set $PregnantPeleaPB = 1>>
<<showNPC "patient" "img/monsters/patients/prgwoman.png" "Patient">>
<<dialogue "Casey" "Calm down… I just want to help you. I’m not going to hurt you." "talk">>
<<addDialogue "Patient" "Don’t touch me! I won’t let anyone take it from me!." "talk">>
<<addDialogue "Casey" "Take a deep breath. You need to stay calm, we can handle this together." "talk">>
<<addDialogue "Patient" "No! I swear, I’ll kill you!" "talk">>
<<addDialogue "" "She’s completely out of control… this isn’t going to work." "thoughts">>
<<addDialogue "" "The woman moves erratically and violently, as if something inside her wants to break free. She lunges toward you with desperate force." "description">>
<<addDialogue "Patient" "Ahh! Die!" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|PregantEnemyPB]]">>
<<horizontalEnd>>
<<set $icdoor6 = true>> <<run startAdvancedBattle([
{
type: 'pregnantPatient',
hp: 90,
distance: 15,
randomDistance: true,
speed: "3-5",
minMovement: 3,
maxMovement: 5,
damage: 10,
DamageIgnore: {
'pistol': 0.2,
'rifle': 0.1,
'shotgun': 0.0,
'melee': 0.2,
'incendiary': 0.2,
'dragon_breath': 0.2,
'tracer': 0.0,
'9mm': 0.2,
'.45': 0.1,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>>
<<timed 10s>>
<<goto "PregnantBBPB">>
<</timed>><<dialogue "" "The woman screams in agony, clutching her belly. Her nails dig into her sweaty skin as her body convulses with violent spasms. The air fills with a nauseating stench." "description">>
<<addDialogue "Patient" "No! It’s coming! I can’t stop it! Dear God, get it out of me!" "talk">>
<<addDialogue "" "Shit…" "thoughts">>
<<addDialogue "" "Her legs spread instinctively. Blood spills across the cold floor of the cell. Amid the cries, an unnatural, wet, and sickening sound fills the room." "description">>
<<addDialogue "Casey" "Breathe! Come on… hold on." "talk">>
<<addDialogue "Patient" "You don’t understand! It’s not a child! It’s… it’s a monster! Ahhh!" "talk">>
<<addDialogue "" "From her womb emerges a twisted, dark shape. A creature with grayish skin and burning eyes writhes among the blood and fluids, letting out a shrill, inhuman screech that chills the blood." "description">>
<<addDialogue "Casey" "Holy shit… What… what the hell is that?!" "talk">>
<<addDialogue "" "This can’t be real… that… 'baby' thing… is not human." "thoughts">>
<<addDialogue "" "The creature crawls toward its mother, who reaches out with a contradictory mix of terror and desperate love. But its movements are filled with feral violence. It claws at her chest, tearing through flesh as her screams are abruptly cut short. Blood sprays across the floor as her body goes limp." "description">>
<<addDialogue "" "God... I don’t know what to say anymore…" "thoughts">>
<<addDialogue "Casey" "I’ve never seen anything like this." "talk">>
<<addDialogue "" "The newborn abomination turns its glowing eyes toward you, letting out a piercing shriek. It lowers itself, muscles twitching, and then lunges forward with predatory speed." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|PregnantBBPBPelea]]">>
<<horizontalEnd>>
<<set $PregnantPeleaPB = 2>>
<<set $PregnantPeleaBBPB = 1>>
<<dialogue "" "The corridor stretches long and narrow, flanked by isolation cells on both sides. Each one lies silent, with its rusted metal doors. Darkness rules the place, and at the end of the corridor, a solitary door can be seen." "description">>
<<horizontalStart>>
<<if $icdoor7 isnot true || $ClosedDoor07 is true>>
<<addDialogue "" "[[Check door at left|cell07door]]">>
<<else>>
<<addDialogue "" "[[Cell 07|Cell07]]">>
<</if>>
<<if $icdoor9 isnot true>>
<<addDialogue "" "[[Check second door at left|cell09door]]">>
<<else>>
<<addDialogue "" "[[Cell 09|Cell09]]">>
<</if>>
<<if $icdoor8 isnot true>>
<<addDialogue "" "[[Check door at right|cell08door]]">>
<<else>>
<<addDialogue "" "[[Cell 08|Cell08]]">>
<</if>>
<<if $icdoor10 isnot true>>
<<addDialogue "" "[[Check second door at right|cell10door]]">>
<<else>>
<<addDialogue "" "[[Cell 10|Cell10]]">>
<</if>>
<<if $sotanodoorOpen isnot true>>
<<addDialogue "" "[[Check front door|Pb2Door]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Head to the fork|IsolationCells2]]">>
<<if $sotanodoor is true>>
<<addDialogue"" "[[Basement stairs|BasamentStairs]]">>
<</if>>
<<horizontalEnd>><<run startAdvancedBattle([
{
type: 'mawling',
hp: 50,
distance: 10,
randomDistance: true,
speed: "3-6",
minMovement: 3,
maxMovement: 8,
damage: 1,
sanityDamage: 6,
DamageIgnore: {
'pistol': 0.1,
'rifle': 0.1,
'shotgun': 0.1,
'melee': 0.1,
'incendiary': 0.1,
'dragon_breath': 0.1,
'tracer': 0.1,
'9mm': 0.1,
'.45': 0.1,
'slugs': 0.1
}
}
], 'VictoryPassage', false, 'CombatEscape', false)>><<dialogue "" "The creature lies motionless on the blood-stained floor. The silence that follows is almost unbearable, broken only by the dripping of fluids and the echo of her own heartbeat." "description">>
<<addDialogue "" "God… that was… brutal. I never imagined anything like this…" "thoughts">>
<<addDialogue "Casey" "I… I can’t believe something like this can exist… ugh… I think I’m going to puke…" "talk">>
<<addDialogue "" "You take a moment to compose yourself, suppressing the bile rising in your throat." "description">>
<<addDialogue "Casey" "Oh... phew..." "talk">>
<<addDialogue "" "So… this is how these little monsters are born… Obviously, someone has been manipulating genetics. This isn’t natural, it can’t be… and it all points to… Doctor White." "thoughts">>
<<addDialogue "Casey" "What kind of sick person does something like this? This… this is monstrous…" "talk">>
<<addDialogue "" "You shudder one last time, averting your gaze from the corpse of the newborn demon. The smell and blood still fill the cell, and a knot of horror and revulsion tightens in your stomach." "description">>
<<addDialogue "Casey" "Damn it… I... I must continue." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Cell06]]">>
<<horizontalEnd>>
<<set $PregnantPeleaBBPB = 2>>///
Version 0.09
Now you can go talk to the nurse in the living room inside the psychiatric hospital and tell her to visit Bruno, unlocking a new scene.
You can now enter the laboratory
Several in-game texts have been reviewed and corrected to provide greater coherence to the plot.
Now you can enter the security room that's in the Grand Hall.
New song for the hospital basement
Fixed bug where you couldn't equip melee weapons after loading a save.
Fixed a bug in the mobile version where the enemy's health bar didn't display correctly.
Fixed some minor bugs in passages, like the basement door or take the same object infinitely.
///
Version 0.08
Added a new scene featuring a nurse that you can encounter in the hospital's living room area
You can now pick up stackable items even if your inventory is full (as long as you already have the stackable item in your inventory or quickslot) – maximum stack size increased to 100
Lockpicks now save their durability/progress when breaking
Added many more locations to find ammunition (especially pistol ammo)
New exclusive weapon for Patreons: Katana
You can now test-fire a revolver at the shooting range
Fixed several fights (hopefully all of them) that were sending the player to the wrong passage after winning or escaping
Fixed all known issues causing blank/dead-end passages that prevented continuing the game (a few might have slipped through, but I believe they're all resolved)
Fixed a critical bug where the game was auto-saving excessively on its own, causing errors, crashes, and save corruption
Fixed a bug that prevented certain items from being sold at the shop
///
Version 0.07
Added 2 new events that trigger when Casey has low sanity.
New scene when losing a fight against your clone while inspecting the black columns in the lab corridor (before entering the laboratory).
Dynamic visual effect: as Casey loses sanity, doors will appear in hallways that were previously not there.
New mechanic to increase Trust with the victims: you can now gain Trust with Ellen.
Fixed various bugs, including errors in combats and incorrect backgrounds in certain parts of the game.
Fixed bug when you talk to the nun, now she doesn't reappear anymore.
///
Version 0.06
Expanded intro adding new scene with captain Henry in his office, now you can return before abandon the police station.
Added new character: Nun margaret, you can find her inside the hospital
Bug Fixes:
Fixed error with lockpicking in the storage of playroom corridor
Fixed problems with quickslots and loads game
Fixed money when you load game
Fixed the problem that when you load game the quest and characters at Casey's phone are missing.
Fixed minor problemes with some scenes when added in phone
///
Version 0.05
New Content:
- Introduced Ellen Ferguson as a new NPC
- Replaced Dr. Home with Dr. Alexander White
- Added Ellen as one of the kidnapped women
- Extended Bruno's plot with two possible paths: seduction or elimination
- New intimate scene between Bruno and Casey
Bug Fixes:
- Fixed issue where items could be picked up with a full inventory
- Fixed shop, when you leave, the money you spent now don't gets refunded
///
Version 0.04
New Easy Mode for the flashlight: boosts your aiming accuracy to 100%, making combat and exploration easier.
2 new scenes added expanding the narrative and character development.
New enemies with unique attack patterns.
New challenges to test your skills and resource management.
New items scattered throughout the game to aid your progress.
New locations expanding the world and offering more exploration opportunities.
///
Version 0.03
New playable hospital floor: The Sublevel 1 floor has been added, expanding exploration and available content.
New NPC: You can now interact with Bruno, the security guard, located in the maintenance room.
Additional enemies: More encounters have been added in the Sublevel 1 area.
Narrative expansion: The story has been expanded with additional content to further develop the main plot.
New scenes: 3 new scenes have been implemented.
Stability improvements: Various bugs and issues from the previous version have been resolved.
Text & dialogues: Multiple corrections and improvements.
Lockpicking system: Fixed and should now work as intended.
UI/technical fixes: Corrected text and dialogue errors, fixed the F5 reload browser error, and corrected the issue when selecting Casey’s name, now works properly.
<<script>>
setTimeout(() => {
const lockpickCount = window.checkLockpicks ? window.checkLockpicks() : 0;
if (lockpickCount > 0) {
Engine.play('FBICarLockpickAttempt');
} else {
Engine.play('FBICarNoLockpicks');
}
}, 500);
<</script>>
<<dialogue "" "You carefully examine the car door lock. It looks like a standard mechanism." "description">>
<<addDialogue "Casey" " I can try to pick this with my lockpicks." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Go back|Parking2]]">>
<<horizontalEnd>>
<<script>>
window.LockBreakSystem.startGame(2,
function() {
window.SystemNotificationSystem.success('🔓 Door unlocked!');
setTimeout(() => Engine.play('openfbicar'), 1500);
},
function() {
window.SystemNotificationSystem.error('🔒 The lockpick broke!');
setTimeout(() => Engine.play('Parking2'), 1500);
}
);
<</script>>
<<dialogue "" "You examine the car door lock carefully. It's a standard mechanism that could be picked..."
"description">>
<<addDialogue "Casey" " But I don't have any lockpicks with me." "talk">>
<<addDialogue "" "You need to find some lockpicks before you can attempt to open this lock." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Go back|Parking2]]">>
<<horizontalEnd>> <<script>>
setTimeout(() => {
const lockpickCount = window.checkLockpicks ? window.checkLockpicks() : 0;
if (lockpickCount > 0) {
Engine.play('SlLockpickAttempt');
} else {
Engine.play('SLNoLockpicks');
}
}, 500);
<</script>>
<<dialogue "" "You carefully examine the door lock. It looks like a standard mechanism." "description">>
<<addDialogue "Casey" " I can try to pick this with my lockpicks." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Go back|Storage2]]">>
<<horizontalEnd>>
<<script>>
window.LockBreakSystem.startGame(2,
function() {
window.SystemNotificationSystem.success('🔓 Door unlocked!');
setTimeout(() => Engine.play('smalllocker2'), 1500);
},
function() {
window.SystemNotificationSystem.error('🔒 The lockpick broke!');
setTimeout(() => Engine.play('smalllocker'), 1500);
}
);
<</script>><<dialogue "" "You examine the door lock carefully. It's a standard mechanism that could be picked..."
"description">>
<<addDialogue "Casey" " But I don't have any lockpicks with me." "talk">>
<<addDialogue "" "You need to find some lockpicks before you can attempt to open this lock." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Go back|smalllocker]]">>
<<horizontalEnd>> <<script>>
setTimeout(() => {
const lockpickCount = window.checkLockpicks ? window.checkLockpicks() : 0;
if (lockpickCount > 0) {
Engine.play('Storage3LockpickAttempt');
} else {
Engine.play('storage3NoLockpicks');
}
}, 500);
<</script>> <<dialogue "" "You carefully examine the door lock. It looks like a standard mechanism." "description">>
<<addDialogue "Casey" " I can try to pick this with my lockpicks." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Go back|Storage3]]">>
<<horizontalEnd>>
<<script>>
window.LockBreakSystem.startGame(2,
function() {
window.SystemNotificationSystem.success('🔓 Door unlocked!');
setTimeout(() => Engine.play('openstorage3'), 1500);
},
function() {
window.SystemNotificationSystem.error('🔒 The lockpick broke!');
setTimeout(() => Engine.play('storagedoor3'), 1500);
}
);
<</script>><<dialogue "" "You examine the door lock carefully. It's a standard mechanism that could be picked..."
"description">>
<<addDialogue "Casey" " But I don't have any lockpicks with me." "talk">>
<<addDialogue "" "You need to find some lockpicks before you can attempt to open this lock." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Go back|storagedoor3]]">>
<<horizontalEnd>> <<script>>
setTimeout(() => {
const lockpickCount = window.checkLockpicks ? window.checkLockpicks() : 0;
if (lockpickCount > 0) {
Engine.play('cell05LockpickAttempt');
} else {
Engine.play('cell05NoLockpicks');
}
}, 500);
<</script>>
<<dialogue "" "You examine the door lock carefully. It's a standard mechanism that could be picked..."
"description">>
<<addDialogue "Casey" " But I don't have any lockpicks with me." "talk">>
<<addDialogue "" "You need to find some lockpicks before you can attempt to open this lock." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Go back|IsolationCells2]]">>
<<horizontalEnd>> <<dialogue "" "You carefully examine the door lock. It looks like a standard mechanism." "description">>
<<addDialogue "Casey" " I can try to pick this with my lockpicks." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Go back|IsolationCells2]]">>
<<horizontalEnd>>
<<script>>
window.LockBreakSystem.startGame(2,
function() {
window.SystemNotificationSystem.success('🔓 Door unlocked!');
setTimeout(() => Engine.play('cell05pbopen'), 1500);
},
function() {
window.SystemNotificationSystem.error('🔒 The lockpick broke!');
setTimeout(() => Engine.play('cell05door'), 1500);
}
);
<</script>> <<script>>
setTimeout(() => {
const lockpickCount = window.checkLockpicks ? window.checkLockpicks() : 0;
if (lockpickCount > 0) {
Engine.play('doorpbLockpickAttempt');
} else {
Engine.play('doorpbNoLockpicks');
}
}, 500);
<</script>> <<dialogue "" "You carefully examine the door lock. It looks like a standard mechanism." "description">>
<<addDialogue "Casey" " I can try to pick this with my lockpicks." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Go back|MirrorsCorridor2]]">>
<<horizontalEnd>>
<<script>>
window.LockBreakSystem.startGame(2,
function() {
window.SystemNotificationSystem.success('🔓 Door unlocked!');
setTimeout(() => Engine.play('Utilityroompbopen'), 1500);
},
function() {
window.SystemNotificationSystem.error('🔒 The lockpick broke!');
setTimeout(() => Engine.play('checdoorpb'), 1500);
}
);
<</script>>
<<dialogue "Casey" "I don't have any lockpicks." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Back|MirrorsCorridor2]]">>
<<horizontalEnd>>
<<dialogue "" "You wake up lying on a hard bed inside a damp cell. Your wrists, ankles, and chest are bound with rough ropes that bite into your skin, leaving you completely unable to move. The freezing air makes you shiver as you realize—you’ve been left naked." "description">>
<<addVideo "media/casey/wakeuptied.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "A faint light slips through the bars, casting unsettling shadows across the stained walls. In the distance, footsteps echo… slowly drawing closer." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|EPB1-3]]">>
<<horizontalEnd>>
<<setAvatarDirect "nude.png">>
<<unlockVideo 1 16>>
<<dialogue "" "You wake up lying on a hard bed inside a damp cell. Your wrists, ankles, and chest are bound with rough ropes that bite into your skin, leaving you completely unable to move. The freezing air makes you shiver as you realize—you’ve been left naked." "description">>
<<addVideo "media/casey/wakeuptied.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "A faint light slips through the bars, casting unsettling shadows across the stained walls. In the distance, footsteps echo… slowly drawing closer." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|EPB2-3]]">>
<<horizontalEnd>>
<<unlockVideo 1 16>><<dialogue "" "The footsteps draw nearer, echoing louder against the damp stone. A shadow stretches across the floor, long and distorted, until it stops right at the bars of your cell. The door creaks open with a metallic shriek. A figure steps inside, their movements slow, deliberate, heavy with intent. The stench of sweat and decay clings to them as they approach the bed. You tug at the ropes with all your strength, but they only dig deeper into your skin. Your chest tightens as the figure leans closer, their breath hot and rancid against your face." "description">>
<<addDialogue "" "No… stay away from me…" "thoughts">>
<<addVideo "media/casey/openboca.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Keep sucking|EPB2-4]]">>
<<if $CaseyRape gte 12>>
<<addDialogue "" "[[Anal punishment|RapeAnal]]">>
<</if>>
<<horizontalEnd>>
<<unlockVideo 1 17>><<dialogue "" "The footsteps draw nearer, echoing louder against the damp stone. A shadow stretches across the floor, long and distorted, until it stops right at the bars of your cell. The door creaks open with a metallic shriek. A figure steps inside, their movements slow, deliberate, heavy with intent. The stench of sweat and decay clings to them as they approach the bed. You tug at the ropes with all your strength, but they only dig deeper into your skin. Your chest tightens as the figure leans closer, their breath hot and rancid against your face." "description">>
<<addDialogue "" "No… stay away from me…" "thoughts">>
<<addVideo "media/casey/openboca.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Keep sucking|EPB1-4]]">>
<<if $CaseyRape gte 12>>
<<addDialogue "" "[[Vaginal punishment|RapeVaginal]]">>
<</if>>
<<horizontalEnd>>
<<unlockVideo 1 17>><<dialogue "" "The guy keeps punishing your mouth mercilessly, prolonging your suffering with each passing moment, his member seeming on the verge of bursting." "description">>
<<addDialogue "Casey" "Mmm..!" "talk">>
<<addVideo "media/casey/openboca2.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|EPBescape]]">>
<<horizontalEnd>>
<<unlockVideo 1 18>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<<set $CaseyRape += 1>><<dialogue "" "The man approaches, from behind and with force he spreads your legs. You can't defend yourself, you're at his mercy. All that's left is suffering. Or... perhaps you might enjoy it..." "description">>
<<addVideo "media/casey/castigoanal3.webm" "" "vertical" "true" "false" "false" "false">>
<<addVideo "media/casey/castigoanal4.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|EPBescape]]">>
<<horizontalEnd>>
<<unlockVideo 1 19>>
<<unlockVideo 1 20>>
<<script>>
window.HealthSanitySystem.removeSanity(15)
<</script>><<dialogue "" "The guy keeps punishing your mouth mercilessly, prolonging your suffering with each passing moment, his member seeming on the verge of bursting." "description">>
<<addDialogue "Casey" "Mmm..!" "talk">>
<<addVideo "media/casey/openboca2.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|EPBescape]]">>
<<horizontalEnd>>
<<unlockVideo 1 18>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<<set $CaseyRape += 1>><<addVideo "media/casey/cumboca.webm" "" "vertical" "true" "false" "false" "false">>
<<dialogue "" "At last, the man stops. His breathing is heavy, ragged, as if he had poured all his rage onto you. Without a word, he straightens up and steps back. His footsteps echo through the cell until they fade beyond the door, leaving behind a suffocating silence" "description">>
<<addDialogue "" "He’s gone… but he’ll come back. I need to way out before that happens." "thoughts">>
<<addDialogue "" "The silence is unbearable. You twist your wrists, pulling at the ropes until the rough fibers burn your skin. With one last desperate effort, the bindings give way. Your arms ache, but you quickly move to free your ankles. As soon as you're free, you stand up shakily, unsteady but determined. In a corner of the cell, you see your clothes piled up. You grab them immediately and dress quickly, each movement driven by the urgency to escape rather than by comfort." "description">>
<<addDialogue "" "The bitter taste won't leave my mouth, and I feel like my entire stomach wants to come out through my throat" "thoughts">>
<<addDialogue "Casey" "Blegh...! Huff... huff..." "talk">>
<<addDialogue "" "I can't give up. Not now, not like this." "thoughts">>
<<addDialogue "Casey" "Huff... I... I must go on." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Escape|Cell04]]">>
<<horizontalEnd>>
<<include "Change_MenuIMG">>
<<dialogue "" "The man approaches to you and with force he spreads your legs. You can't defend yourself, you're at his mercy. All that's left is suffering. Or... perhaps you might enjoy it..." "description">>
<<addVideo "media/casey/castigovagina.webm" "" "vertical" "true" "false" "false" "false">>
<<addVideo "media/casey/castigovagina2.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|EPBescape]]">>
<<horizontalEnd>>
<<unlockVideo 1 21>>
<<unlockVideo 1 22>>
<<script>>
window.HealthSanitySystem.removeSanity(15)
<</script>><<if window.gameState.lanternOn>>
<<goto "armariopbLight2">>
<<else>>
<<dialogue "" "A pitch-black scene, complete darkness, nothing visible. The entire image is covered in deep black, as if the viewer’s eyes cannot adjust to the darkness." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Sectionpb2]]">>
<<horizontalEnd>>
<</if>>
<<set $armariopb = true>><<dialogue "" "A dark and narrow cleaning closet filled with old shelves, rusty buckets, mops, and dirty rags. The air seems dusty and damp, with cobwebs in the corners." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Search something|armariopbSearch]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Back|Sectionpb2]]">>
<<horizontalEnd>><<if $armarioSearch isnot true>>
<<dialogue "" "Inside the closet, you find two cans of chemicals, covered in dust and with illegible labels." "description">>
<<else>>
<<dialogue "" "You search the rest of the closet, but there’s nothing else. Only silence and the musty smell of the place surround you." "description">>
<</if>>
<<if $armarioSearch isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Take chemicals|armariopbchem|?inventoryFull]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Back|armariopb]]">>
<<horizontalEnd>>
<<dialogue "" "You put the cans of chemicals in your backpack, making sure they’re tightly sealed so they don’t spill." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Sectionpb2]]">>
<<horizontalEnd>>
<<set $armarioSearch = true>>
<<script>>window.addItemFromDatabase('chemicals', 2);<</script>><<switch visited()>>
<<case 1>>
<<dialogue "" "The electrical panel is old and metallic, with chipped paint and rust stains in the corners. Several wires intertwine inside, some covered in dust while others show signs of wear. The switches are large and a dull yellow. As you open the panel, the heavy air makes you cough lightly and several slots reveal missing fuses." "description">>
<<addDialogue "Casey" "Cough… cough… Wow… two fuses are missing, great..." "talk">>
<<addDialogue "" "Someone already got to them. Without these fuses, the lights aren’t going to work again. I need to find replacements, or anything that depends on electricity will remain useless." "thoughts">>
<<script>>
completeQuestStage("restore_power");
<</script>>
<<default>>
<<dialogue "" "You approach the electrical panel and inspect it. Two fuses are missing; the empty slots look like they’ve been tampered with recently." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Back|Mantenimiento]]">>
<<horizontalEnd>><<dialogue "" "You stop in front of the door on the left side of the hallway. It’s slightly ajar, a faint creak accompanying its sway." "description">>
<<horizontalStart>>
<<addDialogue"" "[[Enter|RCpbroom]]">>
<<addDialogue"" "[[Back|RightCorridorPB]]">>
<<horizontalEnd>><<if window.gameState.lanternOn>>
<<goto "RCpbroomLight2">>
<<else>>
<<dialogue "" "You step into the room. Darkness swallows everything, so dense you can’t make out a single shape around you." "description">>
<<addDialogue "" "I can’t see anything… this place is getting on my nerves." "thoughts">>
<<horizontalStart>>
<<addDialogue"" "[[Exit|RightCorridorPB]]">>
<<horizontalEnd>>
<</if>>
<<set $RCpbdoor = true>><<dialogue "" "The flashlight illuminates a narrow, neglected room. The floor is covered in dust and fragments of broken wood. Pieces of plaster hang from the walls, exposing damp, stained bricks beneath. In the far right corner, an old metal desk still stands, crooked and eaten away by rust." "description">>
<<horizontalStart>>
<<addDialogue"" "[[Check desk|RCpbdesk]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue"" "[[Exit|RightCorridorPB]]">>
<<horizontalEnd>>
<<set $RCpbdoor = true>><<if $rcpbshells isnot true>>
<<dialogue "" "As you search the smaller drawers of the desk, something heavy and metallic catches your attention. Pulling it out, you discover several shotgun shells, still in good condition." "description">>
<<addDialogue "" "This… this can be useful." "thoughts">>
<<else>>
<<dialogue "" "The desk remains crooked in the corner, rusted and empty. The open drawers show nothing but dust and papers ruined by moisture—there’s nothing left." "description">>
<</if>>
<<if $rcpbshells isnot true>>
<<horizontalStart>>
<<addDialogue"" "[[Take shells|rcpbshells|?!canPickupShotgunShells]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<addDialogue"" "[[Exit|RightCorridorPB]]">>
<<horizontalEnd>><<dialogue "" "You put the shells in your backpack." "description">>
<<addDialogue "" "Done." "thoughts">>
<<horizontalStart>>
<<addDialogue"" "[[Back|RCpbroom]]">>
<<horizontalEnd>>
<<set $rcpbshells = true>>
<<script>>window.addItemFromDatabase('shotgun_shells', 12);<</script>><<dialogue "" "The nurse is in front of an immobile patient, her lips pressed against his member. She sucks desperately, swallowing with feverish eagerness. The patient barely moans, his member trapped in the nurse's mouth." "description">>
<<addVideo "media/others/nurse_suck.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Keep watching|NurseSuck2]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|IsolationCells2]]">>
<<horizontalEnd>>
<<unlockVideo 12 3>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<<set $NurseSuck += 1>>
<<if $NurseSuck gte 2>>
<<<set $nurseStopSuck = true>>
<</if>><<dialogue "" "You observe the scene with a mix of disbelief and urgency. The nurse continues sucking with feverish intensity, oblivious to everything else." "description">>
<<addVideo "media/others/nurse_suck2.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Interrupt|NurseFacial]]">>
<<horizontalEnd>>
<<unlockVideo 12 4>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<<createAdvancedEvent "NurseSuckJoin" 16 "<" "passage" "NurseSuckJoinPrev" false "sanity">>
<<dialogue "" "In disbelief of yourself, you join in the suction of the member with a mix of confusion and uncontrollable urgency. Your lips draw closer, joining the nurse’s desperate rhythm, while your mind swirls with chaotic thoughts." "description">>
<<addDialogue "" "What the hell am I doing? Why can’t I resist?" "thoughts">>
<<addDialogue "" "It’s like someone’s controlling me..." "thoughts">>
<<addVideo "media/others/cansuck.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "I can’t stop... I don’t want to." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Make him cum|NurseSuckJoin2]]">>
<<horizontalEnd>>
<<unlockVideo 12 6>>
<<dialogue "" "Hey, stop! What the hell are you doing?" "talk">>
<<addDialogue "" "You try to interrupt, your trembling voice breaking the silence. Your heart pounds, caught between confusion and the urge to stop her—or perhaps something more... But the nurse, as if possessed, ignores your words, completely absorbed in her task. The patient moans faintly as his body tenses." "description">>
<<addDialogue "" "What the hell? How can this be happening in a place like this?" "thoughts">>
<<addDialogue "" "You stand frozen, unable to look away, while she continues, relentless, until a shudder runs through the patient and, with a final moan, he finishes. Only then does the nurse stop, panting, without even glancing at you, as if you were never there." "description">>
<<addVideo "media/others/nurse_cum.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|exitsuction]]">>
<<horizontalEnd>>
<<unlockVideo 12 5>><<dialogue "" "The forbidden pleasure envelops you, a heady warmth coursing through your body, but doubt gnaws at you, turning every movement into an internal battle between instincts but your desire to please prevails." "description">>
<<addVideo "media/others/cansuck2.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "The nurse, oblivious to your struggle, continues sucking with desperation, and you, trapped in the same trance, carry on, unable to break the spell. The patient’s moans intensify, and though your mind screams unanswered questions, your body doesn’t obey. You keep sucking, lost in the whirlwind, until a final shudder marks the patient’s climax. Only then do you stop, panting, your mind clouded by confusion and the echo of your own thoughts." "description">>
<<addVideo "media/others/cancum.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "What the hell have I just done?" "thoughts">>
<<addDialogue "" "With your heart still pounding, you stand up, unsteady, and move away from the scene. As you walk toward the door, you use the back of your hand to wipe your face and mouth, trying to erase the traces of what just happened." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|exitsuctionCasey]]">>
<<horizontalEnd>>
<<unlockVideo 12 7>>
<<unlockVideo 12 8>>
<<set $Corruption += 3>><<switch visited()>>
<<case 1>>
dialogue "" "The nurse, still panting, barely spares you a glance, her eyes fixed on the patient, who lies motionless, breathing heavily. As you reach the door, you take one last look: the nurse, with renewed intensity, leans toward the patient again, her lips approaching once more. The patient's soft moans begin to resonate again, as if nothing had changed, as if they were about to repeat the cycle. You close the door behind you, your mind clouded by confusion, but relieved to escape, even if only for a moment, from that maelstrom of pleasure and madness." "description">>
<<addDialogue "" "What the hell? I thought I had control over myself, but..." "thoughts">>
<<addDialogue "" "You run your hand over your mouth, wiping away the last trace of that vile and sticky substance which you don't even want to name..." "description">>
<<addDialogue "Casey" "This is... insane." "talk">>
<<addDialogue "" "It can’t be... this can’t..." "thoughts">>
<<if $Lesbian is true>>
<<addDialogue "" "You slide down the wall until you're sitting on the cold floor of the hallway." "description">>
<<addDialogue "" "I don't even like men..." "thoughts">>
<<addDialogue "Casey" "I don't even like men..." "talk">>
<<addDialogue "" "You repeat in a low voice, but the words sound hollow now. Your body reacted in a way that your mind can't process. Was it just the situation, the adrenaline, the strange atmosphere of this place? Or is there something about yourself that you had never recognized?." "description">>
<</if>>
<<addDialogue "" "The sound of footsteps in the distance pulls you out of your mental spiral. You can't let them find you here, in this state. You get up quickly, feigning normalcy as you move away from the area. Each step brings back a bit of composure, each meter of distance helps you rebuild the facade of who you were before crossing that door, you continue." "description">>
<<default>>
<<if $Lesbian is true>>
<<dialogue "" "The nurse, panting, barely glances at you, her focus locked on the patient, still and breathing heavily. You hesitate at the door, stealing one last look: her lips hover over the patient again, their soft moans echoing. You slip out of the cell, heart racing, escaping the chaos." "description">>
<<addDialogue "" "God, I did it again..." "thoughts">>
<<addDialogue "" "You wipe your mouth, the sticky residue clinging to your fingers, its name too vile to think." "description">>
<<addDialogue "Casey" "This is insane..." "talk">>
<<addDialogue "" "How did I let this happen again?" "thoughts">>
<<if $Lesbian is true>>
<<addDialogue "" "You slide down the cold hallway wall until you're sitting on the floor." "description">>
<<addDialogue "" "Maybe I'm getting used to men..." "thoughts">>
<<addDialogue "Casey" "Fuck! I still have that dick on my mind! Shit..." "talk">>
<<set $CaseyLesbian += 1>>
<</if>>
<<addDialogue "" "Your body’s reaction betrays your mind, leaving you questioning everything in this strange place." "description">>
<<addDialogue "Casey" "Shit! This isn’t me... could this place be affecting me somehow?" "talk">>
<<addDialogue "" "I’d better keep moving..." "thoughts">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Continue|IsolationCells2]]">>
<<horizontalEnd>>
<<dialogue "" "The nurse, still panting, barely spares you a glance, her eyes fixed on the patient, who lies motionless, breathing heavily. As you reach the door, you take one last look: the nurse, with renewed intensity, leans toward the patient again, her lips approaching once more. The patient's soft moans begin to resonate again, as if nothing had changed, as if they were about to repeat the cycle. You close the door behind you and leave the room." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|IsolationCells2]]">>
<<horizontalEnd>><<dialogue "" "You observe the scene with a mix of disbelief and urgency. The nurse continues sucking with feverish intensity, oblivious to everything else." "description">>
<<addVideo "media/others/nurse_suck2.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "What is this feeling? Could it be that I feel a desire, I want to join... No! I must control myself..." "thoughts">>
<<addDialogue "Casey" "Oh my..!" "talk">>
<<addDialogue "" "I want to participate... no, I don't want to let myself be carried away by this impulse.... That cock looks so juicy... So juicy... ... ... ... ... ... ..." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Interrupt|NurseFacial]]">>
<<addDialogue "" "[[Join to suction|NurseSuckJoin]]">>
<<addDialogue "" "[[Escape|suctionEscape]]">>
<<horizontalEnd>>
<<unlockVideo 12 4>><<dialogue "" "The door to cell 08 is shut tight, its surface scarred with deep scratches. The number '08' is scrawled in faded paint, barely legible." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|Cell08]]">>
<<addDialogue "" "[[Back|IsolationCells3]]">>
<<horizontalEnd>><<if $ClosedDoor07 isnot true>>
<<dialogue "" "The cell door of 07 creaks slightly, half-open, its rusted hinges groaning. The number '07' is etched faintly on a warped, discolored plaque." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|Cell07]]">>
<<addDialogue "" "[[Back|IsolationCells3]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "The door to cell 07 is locked form outside; you can hear moans coming from inside." "description">>
<<addDialogue "" "I'm not opening this door." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Back|IsolationCells3]]">>
<<horizontalEnd>>
<</if>><<if window.gameState.lanternOn>>
<<goto "Cell07Light">>
<<else>>
<<dialogue "" "The cell is shrouded in total darkness, a black void that swallows all light. Nothing can be seen." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|IsolationCells3]]">>
<<horizontalEnd>>
<</if>>
<<set $icdoor7 = true>>
<<if $LNurseDeath isnot true>>
<<if $NurseWithBruno is true && $BrunoSleep isnot true>>
<<goto "NurseAndBruno">>
<<elseif $BrunoSleep is true && $NurseWithBruno is true>>
<<goto "NurseMad">>
<</if>>
<</if>><<if window.gameState.lanternOn>>
<<goto "Cell08Light">>
<<else>>
<<dialogue "" "The cell is enveloped in a dense gloom that conceals every detail. Nothing is visible." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|IsolationCells3]]">>
<<horizontalEnd>>
<</if>>
<<set $icdoor8 = true>><<dialogue "" "The cell door is ajar, creaking slightly, with rusted hinges that groan. The number '09' is faintly etched on a warped, discolored plaque." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Try to pick the lock|cell09Lock]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Back|IsolationCells3]]">>
<<horizontalEnd>>
<<if window.gameState.lanternOn>>
<<goto "Cell09Light">>
<<else>>
<<dialogue "" "Cell 09 is covered in absolute blackness, a veil that prevents any sight. Nothing can be discerned." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|IsolationCells3]]">>
<<horizontalEnd>>
<</if>>
<<if window.gameState.lanternOn>>
<<goto "Cell10Light">>
<<else>>
<<if $FindEllen isnot true>>
<<dialogue "" "The place lies in impenetrable darkness, as if light never existed. Nothing can be seen, but you hear a faint sob echoing in the gloom." "description">>
<<else>>
<<dialogue "" "The place lies in impenetrable darkness, as if light never existed. Nothing can be seen." "description">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|IsolationCells3]]">>
<<horizontalEnd>>
<</if>>
<<if $EllenINcell is true && $RescueEllen isnot true>>
<<goto "EllenINcell">>
<</if>>
<<set $icdoor10 = true>><<dialogue "" "The door of cell 10 stands wide open, its frame warped and splintered. The number '10' is scratched into the wood, rough and uneven." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|Cell10]]">>
<<addDialogue "" "[[Back|IsolationCells3]]">>
<<horizontalEnd>><<if $FindEllen isnot true>>
<<dialogue "" "The flashlight illuminates a grim cell, with damp walls exuding a rancid smell. A rusted locker is tucked against a wall. The air feels heavy, and a faint sob echoes in the gloom." "description">>
<<else>>
<<dialogue "" "The flashlight illuminates a grim cell, its damp walls exuding a rancid smell. A rusted locker is tucked against a wall. The air feels heavy, and a faint sob echoes in the gloom." "description">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Check locker|cell10locker]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|IsolationCells3]]">>
<<horizontalEnd>>
<<if $EllenINcell is true && $RescueEllen isnot true>>
<<goto "EllenINcell">>
<</if>>
<<set $icdoor10 = true>><<dialogue "" "The flashlight cuts through the darkness, revealing a damp stone floor littered with tattered rags and rusted chains. A faint, unsettling scratching sound echoes from the walls." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|IsolationCells3]]">>
<<horizontalEnd>><<if $cell09box isnot true>>
<<dialogue "" "The flashlight illuminates a damp, oppressive isolation cell, its cracked walls covered in dark, moldy stains. The air is thick with a rancid smell. In one corner sits a rusted metal box, its surface corroded by time." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check box|cellbox09]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "The flashlight illuminates a damp, oppressive isolation cell, its cracked walls covered in dark, moldy stains. The air is thick with a rancid smell." "description">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|IsolationCells3]]">>
<<horizontalEnd>><<dialogue "" "The beam of the flashlight sweeps across a crumbling wall, revealing faded scratch marks forming incoherent words. In a corner lies a broken metal cot, its frame twisted, and a sagging, rusted shelf leans precariously against the wall." "description">>
<<if $cellbatteries07 isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check shelf|cell07shelf]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|IsolationCells3]]">>
<<horizontalEnd>>
<<if $NurseWithBruno is true && $BrunoSleep isnot true>>
<<goto "NurseAndBruno">>
<<elseif $BrunoSleep is true && $NurseWithBruno is true>>
<<goto "NurseMad">>
<</if>> <<script>>
setTimeout(() => {
const lockpickCount = window.checkLockpicks ? window.checkLockpicks() : 0;
if (lockpickCount > 0) {
Engine.play('cell09LockpickAttempt');
} else {
Engine.play('cell09NoLockpicks');
}
}, 500);
<</script>> <<dialogue "" "You carefully examine the door lock. It looks like a standard mechanism." "description">>
<<addDialogue "Casey" " I can try to pick this with my lockpicks." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Go back|IsolationCells3]]">>
<<horizontalEnd>>
<<script>>
window.LockBreakSystem.startGame(2,
function() {
window.SystemNotificationSystem.success('🔓 Door unlocked!');
setTimeout(() => Engine.play('cell09pbopen'), 1500);
},
function() {
window.SystemNotificationSystem.error('🔒 The lockpick broke!');
setTimeout(() => Engine.play('cell09door'), 1500);
}
);
<</script>><<dialogue "" "You’ve managed to unlock the door with the lockpick. The door is open now." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|Cell09]]">>
<<addDialogue "" "[[Back|IsolationCells3]]">>
<<horizontalEnd>>
<<set $icdoor9 = true>><<dialogue "" "You examine the door lock carefully. It's a standard mechanism that could be picked..."
"description">>
<<addDialogue "Casey" " I need lockpicks to do this..." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Go back|IsolationCells3]]">>
<<horizontalEnd>><<if $laser isnot true && $ammocell09 isnot true>>
<<dialogue "" "In the gloom, your hands run over a rusted, sagging shelf. You find a dusty laser sight, still functional, and a handful of expansive pistol ammunition, intact but cold to the touch. You tuck them into your backpack as a faint sob echoes in the darkness." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take laser sight|lasersight|?inventoryFull]]">>
<<addDialogue "" "[[Take ammo|ammocell09|?!canPickupPistolAmmoExpansive]]">>
<<horizontalEnd>>
<<elseif $laser is true && $ammocell09 isnot true>>
<<dialogue "" "You search the rusted, sagging shelf, finding only a handful of expansive pistol ammunition, cold and covered in dust. You tuck it into your backpack as a faint sob echoes in the darkness." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take ammo|ammocell09|?!canPickupPistolAmmoExpansive]]">>
<<horizontalEnd>>
<<elseif $laser isnot true && $ammocell09 is true>>
<<dialogue "" "You rummage through the rusted, sagging shelf in the gloom, finding a dusty laser sight, still functional." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take laser sight|lasersight|?inventoryFull]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "Your hands run over the rusted, sagging shelf in the darkness, but nothing remains, only dust and cobwebs." "description">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Back|Cell09Light]]">>
<<horizontalEnd>><<dialogue "" "Shining the flashlight on the rusted, sagging shelf, you find two dust-covered Duracell batteries, still in their packaging." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take batteries|cellbatteries07|?inventoryFull]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Back|Cell07Light]]">>
<<horizontalEnd>><<dialogue "" "You tuck the two dust-covered Duracell batteries into your backpack." "description">>
<<addDialogue "Casey" "Ugh... I guess these will do or something." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Cell07Light]]">>
<<horizontalEnd>>
<<set $cellbatteries07 = true>>
<<addItem "duracell_battery" 2>><<dialogue "" "You tuck the dusty laser sight into your backpack, feeling its light but useful weight." "description">>
<<addDialogue "Casey" "A laser. I hope it helps me save my ass." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Cell09Light]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('pistol_laser_sight', 1);<</script>>
<<set $laser = true>><<dialogue "" "You stash the handful of expansive pistol ammunition in your backpack, the cold metal brushing your fingers." "description">>
<<addDialogue "Casey" "Bullets. Great, more lead for this hellhole." "talk">>
<<dialogue "" "And how the hell are there bullets in a cell... It doesn't make sense." "thoughts">>
<<addDialogue "Casey" "Pff... Better not complain about free stuff." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Cell09Light]]">>
<<horizontalEnd>>
<<script>>
window.addItemFromDatabase('pistol_ammo_expansive', 22);
<</script>>
<<set $ammocell09 = true>><<dialogue "" "You advance cautiously through the gloomy hallway, the only company the echo of your steps, drowned out by the oppressive silence of the damp and cracked walls. Suddenly, a demonic shadow emerges from the darkness, its twisted and unnatural silhouette looming. Its eyes glow with a malevolent gleam, and an inhuman growl tears through the air as it lunges toward you." "description">>
<<addDialogue "Casey" "Fuck, no! Get away from me!" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|PBShadow]]">>
<<horizontalEnd>>
<<set $shadowpbpelea = 1>> <<run startAdvancedBattle([
{
type: 'shadowCreature',
hp: 110,
distance: 40,
randomDistance: true,
speed: "6-8",
minMovement: 6,
maxMovement: 8,
damage: 18,
DamageIgnore: {
'pistol': 0.5,
'rifle': 0.4,
'shotgun': 0.1,
'melee': 0.2,
'incendiary': 0.0,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.2,
'.45': 0.2,
'slugs': 0.1
}
},
], 'VictoryPassage', false, 'CombatEscape', false)>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<dialogue "" "After a frantic battle, the demonic creature collapses, its twisted silhouette fading into the gloom with a final growl. The hallway falls into an eerie silence, broken only by your ragged breathing. On the floor where the shadow dissolved, you find a box of antidepressants." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take antidepressants|Shadowantidep|?!canPickupAntidep]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Let it|MainCorridorPlantaBaja]]">>
<<horizontalEnd>>
<<set $shadowpbpelea = 0>><<dialogue "" "You tuck it into your backpack." "description">>
<<addDialogue "Casey" "Pff... Antidepressants. Just what I need in this damn place, I guess." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|MainCorridorPlantaBaja]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('antidep', 3);<</script>><<dialogue "" "You close your eyes tightly, clenching your fists as you fight against the wave of desire that threatens to dominate you." "description">>
<<addDialogue "" "I never thought I could feel so... aroused by something like this." "thoughts">>
<<addDialogue "Casey" "What the fuck is happening to me?" "talk">>
<<addDialogue "" "For a moment I really wanted to participate, I wanted to join them, I'm still trembling..." "thoughts">>
<<addDialogue "Casey" "What the fuck is happening to me? Shit, I have to get out..." "talk">>
<<addDialogue "" "You take several steps backward, quickly moving away from the scene. You turn on your heels and leave the place, escaping before the impulses can overcome you again." "description">>
<<addDialogue "" "Does this mean something about me? Have I always had these hidden desires?" "thoughts">>
<<addDialogue "Casey" "It's this damn place... it's driving me crazy!" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|IsolationCells2]]">>
<<horizontalEnd>><<run Engine.restart()>><<dialogue "" "The locker is empty" "description">>
<<horizontalStart>>
<<addDialogue "" "[[Get inside|LockerCell10]]">>
<<horizontalEnd>>
<<if $FindEllen isnot true>>
<<goto "FindEllen">>
<</if>><<dialogue "" "With caution, you open the locker and find a young girl. Her pale face is marked by terror, and her tattered clothes are stained with dried blood. Her sunken eyes look at you as she murmurs incoherently." "description">>
<<addDialogue "???" "Noo! Stay away!" "talk">>
<<addDialogue "" "She screams, her voice trembling. But when you stay still, and she realizes you’re not a deranged patient or a monster, her breathing calms a little, though her hands continue shaking uncontrollably." "description">>
<<addDialogue "Casey" "Don’t worry, I’m not going to hurt you" "talk">>
<<addDialogue "???" "Th... they ran tests on me. I escaped from the laboratory... but I can’t... I can’t go back." "talk">>
<<addDialogue "" "It’s clear she’s in shock. I could try talking to her." "thought">>
<<horizontalStart>>
<<addDialogue "" "[[Who are you?|WhoAreYou]]">>
<<horizontalEnd>>
<<set $FindEllen = true>>
<<set $EllenINcell = true>>
<<showNPC "ellen" "img/characters/ellen/ellen2.png" "Ellen">>
<<set $EllenTrust = 1>><<dialogue "" "You hide in the locker, the cold metal pressing against your back. "description">>
<<addDialoguePos "" "[[Exit|Cell10]]" "center">><<dialogue "" "A grim cell, with damp walls exuding a rancid smell. A rusted locker is tucked against a wall. The air feels heavy, and a faint sob echoes in the gloom. Ellen is crouched inside the locker of the cell." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Talk to Ellen|EllenCell]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|IsolationCells3]]">>
<<horizontalEnd>><<dialogue "" "The locker remains open. Ellen stays curled up inside, trembling slightly, and stares at you with a vacant look." "description">>
<<addDialogue "Ellen" "Casey... I… I’m… glad you’re here…" "talk">>
<<horizontalStart>>
<<if $labkey isnot true>>
<<addDialogue "" "[[Give me the card|EllenCard]]">>
<</if>>
<<addDialogue "" "[[Come with me|EllenCome]]">>
<<if $ExamineEllen isnot true>>
<<addDialogue "" "[[Examine Ellen|ExamineEllen]]">>
<</if>>
<<if $Lesbian gte 10>>
<<addDialogue "" "[[You are a beautiful Ellen|BeautifulEllen]]">>
<</if>>
<<addDialogue "" "[[Give Gift to Ellen|GiftToEllen]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Leave her for now|Cell10]]">>
<<horizontalEnd>>
<<showNPC "ellen" "img/characters/ellen/ellen2.png" "Ellen">><<dialogue "" "Who are you? What’s your name?" "talk">>
<<addDialogue "" "Her lips tremble as she murmurs in a weak voice, but she glances at you briefly." "description">>
<<addDialogue "" "Ellen... My name is Ellen." "description">>
<<horizontalStart>>
<<addDialogue "" "[[How did you escape?|AskEscape]]" "">>
<<horizontalEnd>>
<<showNPC "ellen" "img/characters/ellen/ellen2.png" "Ellen">><<dialogue "Ellen" "Who... Who are you..?" "talk">>
<<timed 100ms>>
<<vdialogue "Casey" "Listen, I’m a detective, my name is $McName Casey and I’m here to help you." "talk">>
<<addDialogue "" "She shudders as she speaks softly, not daring to meet your gaze. Her hands tremble as she edges away." "description">>
<<addDialogue "Ellen" "No… they’ll find me… I can’t move.." "talk">>
<<addDialogue "" "You try to approach carefully, but she shuts her eyes, curling up even tighter. It seems she doesn’t want to go on." "description">>
<<addDialogue "" "She appears frozen with fear, trapped in her own terror, unable to respond to your presence." "thought">>
<<horizontalStart>>
<<if $stateask isnot true>>
<<addDialogue "" "[[How are you feeling?|AskState]]" "">>
<<else>>
<<addDialogue "" "[[Come with me|AskToComeEllen]]" "">>
<</if>>
<<addDialogue "" "[[Leave her for now|Cell10]]">>
<<horizontalEnd>>
<</timed>>
<<set $offerhelp = true>>
<<showNPC "ellen" "img/characters/ellen/ellen2.png" "Ellen">>
<<set $EllenTrust += 1>><<dialogue "Casey" "Come with me, I will help you." "talk">>
<<addDialogue "Ellen" "No… I can’t! They… they tore me away from my family, locked me up here… They wanted to use my body, to fill it with… with something demonic, the seed of a monster. I escaped before they could do it, but there are madmen roaming around and… creatures, experiments that walk and kill… If I go out, they’ll find me and tear me apart. Please, leave me here!" "talk">>
<<addDialogue "" "The girl stares at you without a word. Her body is tense, curled up as if the slightest movement might make her break into tears or bolt. Her wide, unblinking eyes reflect a fear so deep it seems to fill the room. She doesn’t know whether to trust you, and her silence says it all: she’s utterly terrified." "description">>
<<horizontalStart>>
<<if $sisterTalkEllen isnot true>>>
<<addDialogue "" "[[Did you see a blonde girl|sisterEllenAsk]]">>
<</if>>
<<addDialogue "" "[[Leave her for now|Cell10]]">>
<<horizontalEnd>>
<<showNPC "ellen" "img/characters/ellen/ellen2.png" "Ellen">>
<<if $EllenTrust gte 10>>
<</if>><<dialogue "Casey" "How did you escape?" "talk">>
<<addDialogue "" "She must have gone through hell." "thought">>
<<addDialogue "" "She trembles as she pulls something from her hands and hands you a card—it’s the 'Laboratory Access Card'—before curling up again, her gaze vacant." "description">>
<<addDialogue "Ellen" "Take this... Use it t.. to escape..." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Take the card|labkey|?inventoryFull]]" "">>
<<addDialogue "" "[[Leave her for now|Cell10]]">>
<<horizontalEnd>>
<<showNPC "ellen" "img/characters/ellen/ellen2.png" "Ellen">><<dialogue "" "You grab the access card and put it in your backpack." "description">>
<<addDialogue "Casey" "Thank you… I think you’re pretty smart for managing to get the card." "talk">>
<<addDialogue "" "She looks at you, offering a faint, fleeting smile, then lowers her gaze, her expression turning sad and melancholic. She doesn’t respond." "description">>
<<horizontalStart>>
<<addDialogue "" "[[I’m here to help you|OfferHelp]]">>
<<addDialogue "" "[[How are you feeling?|AskState]]" "">>
<<addDialogue "" "[[Leave her for now|Cell10]]">>
<<horizontalEnd>>
<<showNPC "ellen" "img/characters/ellen/ellen2.png" "Ellen">>
<<set $labkey = true>>
<<script>>
addQuestWithStages(
"Lab Investigation",
"Something strange is happening in the hospital. Reach the laboratory and find evidence to uncover what's going on.",
[
"Locate the laboratory on the first floor.",
"Search for clues in the laboratory. Examine the area for evidence about what's happening."
],
"📋",
"main",
"lab_investigation", // Custom ID
"img/lab_mission.png" // Quest image
);
// Add stage images so completion notifications show the quest image
if (window.questSystem && window.questSystem.quests["lab_investigation"]) {
window.questSystem.quests["lab_investigation"].stageImages = [
"img/lab_mission.png", // Stage 1
"img/lab_mission.png" // Stage 2
];
}
State.variables.labMissionId = "lab_investigation";
<</script>>
<<script>>
const itemKey = 'labcard';
const itemName = 'Magnetic Card (laboratory)';
const itemDescription = 'A small magnetic keycard labeled access to laboratory in Charles Francis Hospital.';
const itemValue = 100;
const imagePath = `img/items/keys/labcard.png`;
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "special",
image: imagePath,
stackable: false,
maxStack: 1,
value: itemValue,
weight: 0.1,
isSellable: false,
};
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 1,
img: imagePath
};
//Adding item ro inventory
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
window.ShopSystem.populateSellItems();
<</script>><<dialogue "Casey" "How are you feeling?" "talk">>
<<addDialogue "" "She shakes her head slightly, her sunken eyes glistening with unshed tears. Her voice is barely audible, trembling and weak." "description">>
<<addDialogue "Ellen" "Cold… scared… everything hurts… I don’t know how much longer I can hold on." "talk">>
<<addDialogue "" "She hugs herself, trembling, as if trying to shield herself from invisible memories that haunt her." "description">>
<<horizontalStart>>
<<if $offerhelp isnot true>>
<<addDialogue "" "[[I’m here to help you|OfferHelp]]">>
<<else>>
<<addDialogue "" "[[Come with me|AskToComeEllen]]" "">>
<</if>>
<<addDialogue "" "[[Leave her for now|Cell10]]">>
<<horizontalEnd>>
<<set $stateask = true>>
<<showNPC "ellen" "img/characters/ellen/ellen2.png" "Ellen">><<dialogue "Casey" "Come with me, I’ll keep you safe. You can’t stay here." "talk">>
<<addDialogue "Ellen" "No! I… I can’t leave! They… they kidnapped me… took me away from my family… ran tests on me… they wanted… something horrible inside me… a demon! I escaped before, but there are lunatics everywhere… and monsters… experiments that kill anyone in their way. If I go out, they’ll find me and finish me off!" "talk">>
<<addDialogue "" "She curls up further inside the locker, trembling violently. Her eyes are filled with pure terror, and her words break as if reliving the horror." "description">>
<<addDialogue "" "She’s terrified, but maybe there’s another way." "thought">>
<<horizontalStart>>
<<addDialogue "" "[[Insist that she comes|Insist]]">>
<<addDialogue "" "[[Leave her for now|LeaveEllen]]">>
<<horizontalEnd>>
<<showNPC "ellen" "img/characters/ellen/ellen2.png" "Ellen">><<dialogue "Casey" "I’m going to leave for now, but I promise I’ll come back for you later." "talk">>
<<addDialogue "" "Ellen looks at you, and for a moment you notice a flicker of hope on her face as she nods slightly, then curls up between her legs again." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Leave|Cell10]]">>
<<horizontalEnd>>
<<showNPC "ellen" "img/characters/ellen/ellen2.png" "Ellen">><<dialogue "Casey" "You’re not alone now. Together we can escape this hell." "talk">>
<<addDialogue "Ellen" "You don’t understand! The monsters… they’re real… twisted by the experiments… they’ll follow me… they’ll kill us both. Please, leave me here!" "talk">>
<<addDialogue "" "Her panic rises, and she withdraws even further. It seems that pressing her now only terrifies her more." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Leave her for now|LeaveEllen]]">>
<<horizontalEnd>>
<<showNPC "ellen" "img/characters/ellen/ellen2.png" "Ellen">><<dialogue "Casey" "Did you see a blonde girl who looked like me, around your age?" "talk">>
<<addDialogue "Ellen" "Blonde… yes… I think so… in the laboratory… she was… I don’t know… I think she’s dead… or something worse… I don’t want to talk about it… leave me alone…" "talk">>
<<addDialogue "" "Her voice fades into a broken whisper, and she averts her gaze, as if the memory is devastating her. Her hands tremble more, and she seems to sink into her shock, indifferent to everything else." "description">>
<<addDialogue "" "No, she can’t be dead," "thought">>
<<addDialogue "" "Ellen’s words hit you like a punch to the stomach. Your mind fills with images of your sister, that blonde girl with bright eyes who always found a way to smile, even on the worst days. You think with determination, clinging to hope." "description">>
<<addDialogue "" "If she was in the laboratory, maybe she’s still alive somewhere, waiting for me to find her. I’m not going to give up." "thought">>
<<addDialogue "" "Ellen is too shaken to continue." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Leave her for now|Cell10]]">>
<<horizontalEnd>>
<<showNPC "ellen" "img/characters/ellen/ellen2.png" "Ellen">>
<<set $sisterTalkEllen = true>><<dialogue "" "You approach Bruno with a warm smile, watching him flip through his adult magazine and take sip after sip of his beer." "description">>
<<addDialogue "Casey" "Hey, Bruno, most guards around here are all talk, but you... you’ve got that solid, reliable presence. Makes a girl feel safe in this creepy hospital." "talk">>
<<addDialogue "" "Bruno lowers his magazine slightly, blushing a bit as he chews on his protein bar. He sets the beer on a table covered in crumbs and looks at you with a spark of curiosity." "description">>
<<addDialogue "Bruno" "Heh, compliments from someone like you? Don’t hear those often... You’re pretty hot yourself..." "talk">>
<<addDialogue "Casey" "Maybe. This place is full of secrets, but I’d rather hear about you. A strong guy like you, chilling with your beer and that magazine... bet you’ve got stories to liven up the night." "talk">>
<<addDialogue "Bruno" "Heh heh... Yeah..." "talk">>
<<addDialogue "" "Bruno lets out a chuckle, leaving the magazine open on his lap. He leans back in his chair, more relaxed, beer in hand and a glint of interest in his eyes." "description">>
<<addDialogue "Bruno" "Stories, huh? Night’s pretty quiet... and that door’s locked, but maybe I could bend the rules for someone who knows how to appreciate a man in his element." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Escalate the seduction|seduceBruno2]]">>
<<addDialogue "" "[[Back off|Back off bruno]]">>
<<horizontalEnd>><<dialogue "" "You decide to escalate the seduction. Your heart pounds as you step closer to Bruno, who watches you with anticipation. "description">>
<<horizontalStart>>
<<addDialogue "" "[[Gently brush his arm|seduceBrunoR1Good]]">>
<<addDialogue "" "[[Directly caress his belly|seduceBrunoR1Bad]]">>
<<addDialogue "" "[[Say something overly bold|seduceBrunoR2Bad]]">>
<<horizontalEnd>>
<<set $seductionPoints = 0>>
<<set $failedAttempts = 0>><<dialogue "" "You stop suddenly, a shiver of disgust running through you. The idea of continuing to flirt with Bruno makes your stomach turn." "description">>
<<addDialogue "" "I’m not willing to go through this..." "thoughts">>
<<addDialogue "Casey" "Look, Bruno, I’ve thought it over. Better we leave this for another time..." "talk">>
<<addDialogue "" "Bruno blinks, confused, lowering his magazine. His face hardens as he sets his beer on the table, clearly annoyed." "description">>
<<addDialogue "Bruno" "What? You’re backing out now? Come on! If you don’t want to, then get lost, but don’t waste my time." "talk">>
<<addDialogue "" "His tone is sharp, tinged with irritation. You turn around and leave the hallway, leaving Bruno with his adult magazine and his beer, grumbling." "description">>
<<addDialogue "" "[[Continue to the hallway|LeftCorridorPB3]]">><<dialogue "" "You gently brush his arm with your fingertips. Bruno sighs, relaxing further into his creaky chair, and the adult magazine slips slightly on his lap." "description">>
<<addDialogue "Bruno" "Mmm... that feels nice..." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Whisper something seductive|seduceBrunoR2BGood]]">>
<<addDialogue "" "[[Try to kiss him right away|seduceBrunoR3Bad]]">>
<<addDialogue "" "[[Massage his shoulders|seduceBrunoR2BGood]]">>
<<horizontalEnd>><<dialogue "" "You reach out and touch his belly directly. Bruno freezes, gripping his beer can tightly. He immediately frowns and shifts uncomfortably in his chair, the magazine slipping slightly from his lap." "description">>
<<addDialogue "Bruno" "Hey... what are you doing? Don’t touch me like that, I don’t like it." "talk">>
<<addDialogue "" "He leans back, moving your hand away with his arm, clearly annoyed. He takes a long swig of his beer and eyes you warily as crumbs from his protein bar fall onto his shirt." "description">>
<<addDialogue "" " Bruno seems cautious now." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Whisper something seductive|seduceBrunoR2Good]]">>
<<addDialogue "" "[[Try to kiss him right away|seduceBrunoR4Bad]]">>
<<addDialogue "" "[[Massage his shoulders|seduceBrunoR2Good]]">>
<<horizontalEnd>>
<<set $failedAttempts += 1>><<dialogue "Casey" "Come on, don’t be like that… with a belly like that I almost feel like lying on top of you." "talk">>
<<addDialogue "" "Bruno’s expression hardens; he doesn’t just look uncomfortable anymore, he looks irritated." "description">>
<<addDialogue "Bruno" "Seriously, cut it out. I’m not in the mood for this." "talk">>
<<addDialogue "" "Bruno shifts back in his chair, gripping his beer tightly. The easygoing air from before is gone, replaced by a tense silence. Bruno seems cautious now." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Whisper something seductive|seduceBrunoR2BGood]]">>
<<addDialogue "" "[[Try to kiss him right away|seduceBrunoR3Bad]]">>
<<addDialogue "" "[[Massage his shoulders|seduceBrunoR3Good]]">>
<<horizontalEnd>>
<<set $failedAttempts += 1>> <<dialogue "" "You lean in close and whisper something seductive into Bruno’s ear, your voice low and teasing. His eyes widen slightly, and a smile creeps onto his face as he sets his beer down on the crumb-covered table." "description">>
<<addDialogue "Bruno" "Heh... you’re gonna get me in trouble talking like that." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Carefully sit on his lap|seduceBrunoR3Good]]">>
<<addDialogue "" "[[Snatch his magazine and toss it aside|seduceBrunoR3Bad]]">>
<<addDialogue "" "[[Try to kiss him right away|seduceBrunoR3Bad]]">>
<<horizontalEnd>>
<<dialogue "" "You place your hands on Bruno’s shoulders and begin to massage gently, working out the knots in his tense muscles. He lets out a low groan, tilting his head back, and the adult magazine slips from his hands, falling onto the table littered with crumbs from his protein bar." "description">>
<<addDialogue "Bruno" "Fuck... you’ve got amazing hands. Keep that up, and I might just forget I’m working." "talk">>
<<addDialogue "" "The beer can is forgotten on the table as Bruno relaxes under your touch, his rigid posture softening and a glint of pleasure crossing his eyes." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Carefully sit on his lap|seduceBrunoR3Good]]">>
<<addDialogue "" "[[Snatch his magazine and toss it aside|seduceBrunoR3Bad]]">>
<<addDialogue "" "[[Try to kiss him right away|seduceBrunoR3Bad]]">>
<<horizontalEnd>><<dialogue "" "On impulse, you snatch the magazine from his hands and toss it to the floor with a dismissive gesture. Bruno stands there, mouth agape, his face flushing with fury. He slams his beer can on the table, spilling some of the liquid, as crumbs from his protein bar fall onto his shirt." "description">>
<<addDialogue "Bruno" "Hey, what the hell! That’s my magazine! You think you can come in here and ruin my night? Get out of my sight, now!" "talk">>
<<addDialogue "" "He stands up, the creaky chair groaning under his weight, and points at the door with a trembling finger of rage. His voice echoes down the hallway, making it clear there’s no going back." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Try to have sex|BrunoSex]]">>
<<horizontalEnd>>
<<set $failedAttempts += 1>><<dialogue "" "You carefully sit on his lap, maintaining eye contact and a soft smile. Bruno lets out a low growl, setting his beer down on the table as his hands timidly rest on your hips." "description">>
<<addDialogue "Bruno" "Wow... this is getting interesting. I didn’t expect this from you." "talk">>
<<addDialogue "" "The magazine slips to the floor, forgotten, as his gaze softens, completely caught up in your closeness." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Snatch his magazine and toss it aside|seduceBrunoR4Bad]]">>
<<addDialogue "" "[[Try to kiss him right away|seduceBrunoR3Bad]]">>
<<horizontalEnd>> <<dialogue "" "The premature kiss catches him off guard. He pulls back, uneasy." "description">>
<<addDialogue "Bruno" "Whoa, slow down! What’s your deal?" "talk">>
<<addDialogue "" "Damn. I didn’t know it would be so complicated." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Carefully sit on his lap|seduceBrunoR3Good]]">>
<<addDialogue "" "[[Snatch his magazine and toss it aside|seduceBrunoR4Bad]]">>
<<horizontalEnd>>
<<set $failedAttempts += 1>> <<dialogue "" "Your hand moves down with purpose, grazing the bulge in his pants. He lets out a sharp gasp, and you feel his hands grip your hips, squeezing hard. The contact is electric, raw, and the space between you feels like a taut wire about to snap." "description">>
<<addDialogue "Bruno" "I can’t take it anymore, I need your mouth." "talk">>
<<addDialogue "" "He's mine." "thoughts">>
<<addDialogue "" "His clumsy hands fumble with his belt, and his clothes drop to the cold floor." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Put off clothes|BrunoSex2]]">>
<<horizontalEnd>>
<<if $failedAttempts gte 3>>
<<goto "BrunoFailSex">>
<</if>>
<<set $CaseyHetero += 1>><<dialogue "" "Your hand moves down with purpose, grazing the bulge in his pants but Bruno’s had enough. He stands up, knocking over his beer can, which spills across the table. His face is a mix of anger and humiliation as he grabs your arm and shoves you toward the door." "description">>
<<addDialogue "Bruno" "You’re done here! I don’t know what your game is, but I’m not some idiot you can toy with! Get out and don’t come back!" "talk">>
<<addDialogue "" "He practically pushes you into the hallway, slamming the door behind you. The sound of the lock clicking echoes as you’re left standing outside, with no access to the maintenance room. His muttering and the rustle of his magazine resume from inside." "description">>
<<addDialogue "" "Pff... truth is, I was never really good at this kind of thing. Maybe I can find another way." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|LeftCorridorPB3]]">>
<<horizontalEnd>>
<<set $failedAttempts = 0>><<dialogue "Casey" "What orders are those?" "talk">>
<<addDialogue "Bruno" "None of your business." "talk">>
<<addDialogue "Casey" "Come on, Bruno. Just tell me what it’s about." "talk">>
<<addDialogue "Bruno" "Look, miss, there are things it’s better not to know, ok?" "talk">>
<<addDialogue "Casey" "What boss? You mean Dr. White, right? What orders are you talking about?" "talk">>
<<addDialogue "Bruno" "Sighs I can’t tell you. Seriously, leave me alone!" "talk">>
<<addDialogue "Casey" "Bruno, I’m investigating a multiple kidnapping case! Kidnappings... doesn’t this mean anything to you?" "talk">>
<<addDialogue "" "Bruno falls silent for a moment, clearly uncomfortable." "description">>
<<addDialogue "Bruno" "Look, miss... I just do my job.." "talk">>
<<addDialogue "Casey" "Does your job include covering up kidnappings?" "talk">>
<<addDialogue "Bruno" "I’m not covering anything up! I just... I just follow orders, ok?" "talk">>
<<addDialogue "Casey" "Then you know something. Bruno, there are lives at stake." "talk">>
<<addDialogue "Bruno" "You don’t know what you’re getting into. Seriously." "talk">>
<<addDialogue "Casey" "Are you threatening me?" "talk">>
<<addDialogue "Bruno" "No, I’m warning you. There’s a difference." "talk">>
<<addDialogue "Casey" "A warning from whom? Dr. White?" "talk">>
<<addDialogue "Bruno" "Leave me alone already and get out of here!" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Where is the doctor?|askBrunoforDoctor]]" "">>
<<horizontalEnd>><<dialogue "Casey" "Where is the doctor?" "talk">>
<<addDialogue "Bruno" "Probably in his office… but you can’t bother him." "talk">>
<<addDialogue "Casey" "On which floor is that office?" "talk">>
<<addDialogue "" "Perfect. He just confirmed he’s here. Now I just need to know exactly where." "thoughts">>
<<addDialogue "Bruno" "Hey, wait. Why so many questions?" "talk">>
<<addDialogue "Casey" "I just want to talk to him about the case." "talk">>
<<addDialogue "Bruno" "What case? What exactly are you talking about?" "talk">>
<<addDialogue "Casey" "The kidnappings. I already told you, I’m investigating." "talk">>
<<addDialogue "" "Bruno shifts uncomfortably, glancing around." "description">>
<<addDialogue "" "Shit, he’s getting more and more suspicious. I need to calm him down." "thoughts">>
<<addDialogue "Bruno" "Yeah, but… investigating for who? Who are you really?" "talk">>
<<addDialogue "Casey" "Someone looking for the truth." "talk">>
<<addDialogue "" "Great answer, Casey. That sounded suspicious as hell." "thoughts">>
<<addDialogue "Bruno" "Distrustful That’s not an answer. If this were official, you’d have credentials." "talk">>
<<addDialogue "Casey" "Bruno, I don’t need—" "talk">>
<<addDialogue "" "Bruno cuts you off before you can finish." "description">>
<<addDialogue "Bruno" "No! If you’re legitimate, show me your badge." "talk">>
<<addDialogue "" "And there it is… the question I was hoping to avoid." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Here is my badge (Pull out the gun)|BrunoGun]]" "">>
<<addDialogue "" "[[No|NoPoliceBruno]]" "">>
<<horizontalEnd>><<dialogue "Casey" "I don’t have a badge." "talk">>
<<addDialogue "" "Bruno’s eyes narrow, his expression hardening." "description">>
<<addDialogue "Bruno" "Then you’ve got no business here. Get out." "talk">>
<<addDialogue "" "He grabs your arm firmly, steering you toward the door." "description">>
<<addDialogue "Casey" "Bruno, wait..." "talk">>
<<addDialogue "Bruno" "No! I said leave!" "talk">>
<<addDialogue "" "With surprising force, he pushes you out of the room and slams the door shut behind you. The sound echoes down the hallway, leaving you alone… and with fewer options." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Leave|LeftCorridorPB3]]" "">>
<<horizontalEnd>>
<<set $MantenimientoClosed = true>><<dialogue "" "You take the gun decisively. The steel weighs in your hand like a promise and a warning. Without hesitation, you aim directly at Bruno. You know that what you're doing is wrong, which affects your sanity." "description">>
<<addDialogue "Casey" "Here's my badge, now tell me where the doctor is. What floor is his office on?" "talk">>
<<addDialogue "Bruno" "Uh... I...! No..." "talk">>
<<addDialogue "" "Bruno freezes, his gaze fixed on the gun barrel." "thoughts">>
<<addDialogue "Bruno" "He's... in the west wing... second floor..." "talk">>
<<addDialogue "" "This is getting a bit out of hand. Stay calm Casey." "description">>
<<addDialogue "Casey" "Who gave you those orders? Doctor White?" "talk">>
<<addDialogue "Bruno" "Yes... Please, don't do anything stupid." "talk">>
<<addDialogue "" "Your hand trembles for an instant; your pulse quickens. You feel like your emotions could explode at any moment. Bruno remains motionless, vulnerable, as if time had slowed down. It's clear that the gun has left him speechless." "description">>
<<addDialogue "" "I can get more out of him..." "thoughts">>
<<addDialogue "Casey" "What's happening here? Where are the girls? And why does the doctor want them?" "talk">>
<<addDialogue "Bruno" "I... I can't... I've already said too much..." "talk">>
<<addDialogue "Casey" "Answer me, Bruno! Those women are missing!" "talk">>
<<addDialogue "Bruno" "Please, just... just go talk to the doctor. I can't..." "talk">>
<<addDialogue "Casey" "Steps closer, gun still aimed Don't you dare walk away from me! What is he doing to them?" "talk">>
<<addDialogue "" "Bruno is clearly scared, sweating, with a trembling voice" "description">>
<<addDialogue "Bruno" "You don't understand... if I talk, I'm dead..." "talk">>
<<addDialogue "Casey" "And if you don't talk, you might be dead right now! TELL ME!" "talk">>
<<addDialogue "Bruno" "Okay, okay! They're going to... they're going to get pregnant, alright? That's what he wants them for!" "talk">>
<<addDialogue "Casey" "What?!" "talk">>
<<addDialogue "" "So... it's true" "thoughts">>
<<addDialogue "Bruno" "Some of them... some don't survive the process. That's all I know, I swear!" "talk">>
<<addDialogue "" "This sick bastard..." "thoughts">>
<<addDialogue "Casey" " How many women has he killed?" "talk">>
<<addDialogue "Bruno" "I don't... I don't know... many..." "description">>
<<addDialogue "" "Your blood boils. The gun feels heavier in your hand as rage consumes you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Shoot Bruno|BrunoPelea]]" "">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Holster the gun]]" "">>
<<horizontalEnd>>
<<set $BrunoPelea = 1>>
<<set $BrunoGun = true>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>><<dialogue "" "Bruno locked the maintenance room door from the inside." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" "Shit! I'll have to force the lock..." "talk">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Back|LeftCorridorPB3]]" "">>
<<horizontalEnd>><<dialogue "" "Slowly, you lower the weapon. Your hands still tremble with rage, but you manage to control the impulse. With a deliberate movement, you holster the gun, although every fiber of your being screams for vengeance." "description">>
<<addDialogue "Bruno" "Are you crazy? You pointed a gun at me! You could have killed me!" "talk">>
<<addDialogue "Casey" "Bruno, I was just..." "talk">>
<<addDialogue "Bruno" "No! No excuses! Get out of here! NOW!" "talk">>
<<addDialogue "Casey" "I need more information..." "talk">>
<<addDialogue "Bruno" "I told you to get out!" "talk">>
<<addDialogue "" "Shit. I blew it. Now I’ll have to find another way to get to the doctor." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Wait please|BrunoExpulse2]]" "">>
<<horizontalEnd>>
<<set $BrunoPelea = 0>>
<<if $CaseyJacket is true && $CaseyCoat isnot true>>
<<setAvatarDirect "caseyjacket.png">>
<<elseif $CaseyJacket isnot true && $CaseyCoat is true>>
<<setAvatarDirect "caseycoat.png">>
<<else>>
<<setAvatarDirect "casey2.png">>
<</if>> <<run startAdvancedBattle([
{
type: 'Bruno',
hp: 120,
distance: 40,
randomDistance: true,
speed: "3-5",
minMovement: 3,
maxMovement: 5,
damage: 14,
DamageIgnore: {
'pistol': 0.5,
'rifle': 0.4,
'shotgun': 0.1,
'melee': 0.2,
'incendiary': 0.0,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.2,
'.45': 0.2,
'slugs': 0.1
}
},
], 'VictoryPassage', false, 'CombatEscape', false)>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<dialogue "" "The thunderous sound of the final shot echoes through the room. Bruno collapses backward, his eyes wide open reflecting shock and terror in his final moments. Blood begins to spread slowly across the concrete floor." "description">>
<<addDialogue "" "My God... what have I done?" "thoughts">>
<<addDialogue "" "The silence that follows is deafening. Gunpowder smoke floats in the air as you observe Bruno's motionless body. Your hands tremble violently, the weapon feels like it weighs a ton." "description">>
<<addDialogue "" "There was no other choice... was there?" "thoughts">>
<<addDialogue "Casey" "All those women... the ones who died... But now... I had killed someone before but now I feel like a murderer." "talk">>
<<addDialogue "" "The smell of gunpowder and blood fills your nostrils. There's no turning back." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Mantenimiento]]" "">>
<<horizontalEnd>>
<<set $MantenimientoClosed = true>>
<<set $FatManISdead = true>>
<<set $Corruption += 1>>
<<script>>
window.HealthSanitySystem.removeSanity(15)
<</script>>
<<set $BrunoPelea = 2>><<dialogue "Casey" "Bruno, wait..." "talk">>
<<addDialogue "" "He grabs your arm firmly, steering you toward the door." "description">>
<<addDialogue "Bruno" "No! I said leave!" "talk">>
<<addDialogue "" "With surprising force, he pushes you out of the room and slams the door shut behind you. The sound echoes down the hallway, leaving you alone… and with fewer options." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Leave|LeftCorridorPB3]]" "">>
<<horizontalEnd>>
<<set $MantenimientoClosed = true>><<if $BrunoMoney isnot true>>
<<dialogue "" "You move closer to Bruno’s body. Blood has spread into a dark pool around him. You try to ignore his glassy eyes as you rifle through his pockets with clumsy, nervous movements." "description">>
<<addDialogue "" "Come on, he has to have something useful..." "thoughts">>
<<addDialogue "Casey" "tb" "talk">>
<<addDialogue "" "In the first pocket you find a wad of crumpled bills. Cash — which you tuck away quickly. You keep searching, and in the back pocket of his trousers your fingers find something rectangular and plastic." "description">>
<<addDialogue "Casey" "Perfect. A card." "talk">>
<<set $BrunoMoney = true>>
<<else>>
<<dialogue "" "You move closer to Bruno’s body. Blood has spread into a dark pool around him. You try to ignore his glassy eyes as you rifle through his pockets with clumsy, nervous movements. " "description">>
<<addDialogue "" "Come on, he has to have something useful..." "thoughts">>
<<addDialogue "" "In one of his pockets you find something rectangular and plastic. You study it carefully — it’s a magnetic access card with a blue stripe. In small letters it reads "SECURITY ROOM."" "description">>
<<addDialogue "Casey" "Perfect. " "talk">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Take card|ScardBruno|?inventoryFull]]" "">>
<<addDialogue "" "[[Let it for now|Mantenimiento]]" "">>
<<horizontalEnd>><<dialogue "" "After a moment of hesitation, you extend your hand and take the access card. The plastic feels cold against your skin, slightly stained with Bruno's blood. You carefully clean it on your clothes before putting it in your pocket." "description">>
<<addDialogue "" "This could be the key to finding thd girls." "thoughts">>
<<addDialogue "" "You slowly stand up, avoiding looking at Bruno's lifeless face. The card feels heavy in your pocket." "description">>
<<addDialogue "" "Security room... that's where the cameras will be, the building plans, maybe even records of what's happening here." "thoughts">>
<<if $PowerOn isnot true>>
<<addDialogue "Casey" "But first I need to find a way to turn on the power." "thoughts">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Mantenimiento]]" "">>
<<horizontalEnd>>
<<set $securityCard = true>>
<<set $BrunoBodyCheck = true>>
<<script>>
// Special item: Security Room Access Card
const itemKey = 'securityCard';
const itemName = 'Security Room Access Card';
const itemDescription = 'A magnetic keycard labeled "SECURITY ROOM". Grants access to the security room at Charles Francis Hospital.';
const itemValue = 100;
const imagePath = `img/items/keys/security_card.png`;
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "special",
image: imagePath,
stackable: false,
maxStack: 1,
value: itemValue,
weight: 0.1,
isSellable: false,
};
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 1,
img: imagePath
};
// Adding item to inventory
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
window.ShopSystem.populateSellItems();
<</script>><<dialogue "" "With a playful smile, you snatch the adult magazine off the floor and toss it aside with a teasing wink. Bruno lets out a deep laugh, his hands gripping your hips lightly as he leans in. You can feel something hard pressing against your pants." "description">>
<<addDialogue "Bruno" "Damn, that’s bold! I like that... Let’s get comfortable." "talk">>
<<addDialogue "Casey" "I’m glad you like it." "talk">>
<<addDialogue "" "If I want to do something, now’s the time." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Try to have sex|BrunoSex]]">>
<<horizontalEnd>><<dialogue "" "You letting your clothes slide off, piece by piece, until the air brushes your skin. You start slowly, leaning over him, your warm breath hitting his skin. The touch is soft at first, almost a whisper of contact, but the heat between you grows, raw and urgent." "description">>
<<addVideo "media/bruno/brunoandcasey.webm" "" "vertical" "true" "false" "false" "false">>
<<addVideo "media/bruno/brunoandcasey2.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Make him cum|BrunoSex3]]">>
<<horizontalEnd>>
<<setAvatarDirect "nude.png">>
<<unlockVideo 4 1>>
<<unlockVideo 4 2>> <<addDialogue "" "<<bak>>">><<dialogue "" "Your hand grips him firmly, moving with a steady rhythm. You feel his pulses as you tug with frantic urgency. A shudder runs through him, and you feel the heat of his climax on your chest." "description">>
<<addVideo "media/bruno/brunoandcasey3.webm" "" "vertical" "true" "false" "false" "false">>
<<horizontalStart>>
<<addDialogue "" "[[Put on your clothes|BrunoSleep]]">>
<<horizontalEnd>>
<<unlockVideo 4 3>>
<<dialogue "" "You wipe yourself with a nearby rag, your pulse still racing. Quickly, you grab your clothes from the floor and get dressed. Bruno, moving slowly, pulls on his shirt and pants, his hands clumsy, as if the effort had drained him. He’s exhausted, his eyes half-closed, looking like he might fall asleep against the wall. His chest rises and falls with heavy breaths, his gaze barely focused on you." "description">>
<<addDialogue "Bruno" "I think I’m gonna take a quick nap… Don’t touch anything, alright? See you when I wake up… We can do this again…" "talk">>
<<addDialogue "Casey" "Sure, sweetie… I won’t touch a thing, just rest. See you later." "talk">>
<<addDialogue "" "No way in hell!" "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Let him rest|Mantenimiento]]">>
<<horizontalEnd>>
<<if $CaseyJacket is true && $CaseyCoat isnot true>>
<<setAvatarDirect "caseyjacket.png">>
<<elseif $CaseyJacket isnot true && $CaseyCoat is true>>
<<setAvatarDirect "caseycoat.png">
<</if>>
<<set $Corruption += 5>>
<<set $BrunoSleep = true>><<dialogue "" "You take a laser sight" "description">>
<<horizontalStart>>
<<addDialogue "" "[[MainLobby]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('pistol_laser_sight', 1);<</script>><<dialogue "" "Your vision blurs for a moment... and when you blink, the hallway has changed. Where there was once only a blank wall, a door now stands." "description">>
<<addDialogue "" "It’s a pale wooden door—old, yet strangely intact—with a dusty golden handle. Nailed to the center is a hand-written sign, the ink shaky and uneven: *'HELP HER.'*" "description">>
<<addDialogue "Casey" "What the hell...? That door wasn’t there a second ago..." >>
<<addDialogue "" "A chill runs down your spine. Something deep inside pulls at you, like a silent cry echoing from the other side. You don’t know why, but your feet begin to move on their own." "description">>
<<addImageV "img/events/sistereventdoor.png">>
<<horizontalStart>>
<<addDialogue "" "[[Open the door|DistortedMemory]]">>
<<horizontalEnd>>
<<set $bedAeventSister = true>>
<<set $brokeSisterSotano = true>><<dialogue "" "The laboratory is hidden in the depths of the east wing of the hospital. The white tile walls are stained with splashes of substances you'd rather not identify. Several stainless steel tables are arranged throughout the room, covered with medical instruments: syringes, vials with murky liquids of strange colors. In the center of the room, a woman dressed in an old-fashioned nurse's uniform is sitting in a chair, completely motionless. Her posture is rigid, unnatural. Her hands rest on her lap. When you enter, her eyes slowly move toward you, following your every movement. She stares at you intently, but makes no attempt to move. She just... watches you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Talk to the Nun|NunTalk]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|BedroomD]]">>
<<horizontalEnd>>
<<script>>
window.setLighting(60);
<</script>>
<<set $NunRoom = true>><<dialogue "" "You approach her carefully to Ellen." "description">>
<<addDialogue "Casey" "May I examine you?" "talk">>
<<addDialogue "Ellen" "..." "talk">>
<<addDialogue "" "You begin the examination. You check her condition: her pulse is weak but steady, she has several bruises on her arms and superficial cuts on her hands. Her breathing is irregular, probably due to panic. She doesn't appear to have serious injuries, although the dried blood on her clothes suggests she was present during some violent incident. Despite everything that has happened, I can't help but notice that Ellen is quite a beautiful young woman. Even in these circumstances..." "description">>
<<horizontalStart>>
<<addDialogue "" "[[You are beautiful Ellen|BeautifulEllen]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Leave her for now|Cell10]]">>
<<horizontalEnd>>
<<showNPC "ellen" "img/characters/ellen/ellen2.png" "Ellen">>
<<dialogue "Casey" "You're a beautiful young woman, did you know that?" "talk">>
<<addDialogue "" "Ellen tenses immediately. Her eyes fill with tears and she begins to tremble." "description">>
<<addDialogue "Ellen" "That... that's what they said... What the doctor said..." "talk">>
<<addDialogue "" "Tears begin to roll down her cheeks as she looks away, her entire body shaking. It's clear that your words, though well-intentioned, have awakened some terrible memory." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Embrace her to comfort her]]">>
<<addDialogue "" "[[Leave her for now|Cell10]]">>
<<horizontalEnd>>
<<showNPC "ellen" "img/characters/ellen/ellen2.png" "Ellen">>
<<set $CaseyLesbian += 1>>
<<set $ExamineEllen = true>><<dialogue "" "Without thinking twice, you approach and hug her carefully, wrapping your arms around her protectively. Ellen stays rigid for a moment, as if expecting something bad. But then, slowly, her body begins to relax. She buries her face in your chest and begins to sob harder, releasing all the terror and pain she's been holding in." "description">>
<<addDialogue "Casey" "I'm sorry... I'm so sorry. I didn't mean to scare you. You're safe now. No one is going to hurt you." "talk">>
<<addDialogue "" "She clings to you tightly, her hands gripping your clothes as she cries. You can feel how she trembles in your arms. You stay like this for several minutes, holding her until her sobs begin to calm down little by little. When she finally pulls back a bit, her swollen eyes look at you with a mix of fear and something like gratitude." "description">>
<<addDialogue "Casey" "Are you okay?" "talk">>
<<addDialogue "" "She nods weakly, wiping away tears with the back of her hand." "description">>
<<addDialogue "" "Whatever they did to her... whoever this doctor was... I'll make sure they never hurt anyone again." "thought">>
<<addDialogue "Ellen" "Thank you... I... I needed that." "talk">>
<<addDialogue "Casey" "Rest a little. I'll come back to check on you." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Leave her for now|Cell10]]">>
<<horizontalEnd>>
<<showNPC "ellen" "img/characters/ellen/ellen2.png" "Ellen">>
<<set $CaseyLesbian += 1>>
<<set $EllenTrust += 1>><<dialogue "" "You approach cautiously. The nun doesn't turn, but she seems to sense your presence and speaks to you." "description">>
<<addDialogue "???" "Another sheep... wandering in the darkness." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Who are you|NunTalk2]]">>
<<horizontalEnd>>
<<showNPC "margaret" "img/characters/margaret/margaret.png" "Margaret">>
<<set $NunExit = true>>
<<run startAdvancedBattle([
{
type: 'Nun',
hp: 80,
distance: 15,
randomDistance: true,
speed: "3-5",
minMovement: 3,
maxMovement: 5,
damage: 13,
DamageIgnore: {
'pistol': 0.5,
'rifle': 0.3,
'shotgun': 0.1,
'melee': 0.2,
'incendiary': 0.1,
'dragon_breath': 0.1,
'tracer': 0.1,
'9mm': 0.2,
'.45': 0.1,
'slugs': 0.1
}
}
], 'VictoryPassage', true, 'CombatEscape', true)>>
<<set $NunShoot = 1>><<dialogue "" "vd" "description">>
<<addDialogue "Casey" "ddv." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Take item|Tpc|?inventoryFull]]">>
<<addDialogue "" "[[Let it|roomD3]]">>
<<horizontalEnd>>
<<set $NunDeath = true>>
<<set $NunShoot = 2>><<dialogue "" "You walk down the hallway. The fluorescent light above you flickers, casting shadows that follow you. There's no turning back. You've been fired, and in doing so, you've lost more than just a job. You've lost your purpose, your identity, everything you once thought defined you." "description">>
<<if $CaptainComment isnot true && $CaptainCheating is true>>
<<addDialogue "" "What a son of a bitch. His wife doesn't deserve this." "thoughts">>
<<set $CaptainComment = true>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<if $entradaintro is true>>
<<addDialogue "" "[[Captain's office|CaptainOffice]]">>
<</if>>
<<addDialogue "" "[[Your old office|io]]">>
<<addDialogue "" "[[Go to the entrance|ComisariaIntro]]">>
<<horizontalEnd>> <<dialogue "" "You're standing in front of Captain Havook's half-open door, pen still in hand after signing your resignation. Inside, Henry, his face tense, speaks with a red-haired woman wearing a black dress. Her hair gleams under the lamplight. She speaks in a low voice, so low that you can't make out her words. Henry nods, drumming a brown folder on his desk. The woman gestures, and her eyes dart toward the door nervously for an instant, but you hide behind the door and she doesn't manage to see you, then she looks back at the captain and continues talking with him." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Keep watching|CaptainSex]]">>
<<addDialogue "" "[[Exit|PasilloIntro]]">>
<<horizontalEnd>>
<<if $lookInCaptain is true>>
<<goto "NoCaptainOffice">>
<</if>><<dialogue "" "You retrace your steps back to the entrance of the police station. The lobby is emptier than before, with only a couple of officers taking care of paperwork at their desks. You look around searching for Rodríguez. The bench where he used to sit is empty, and his jacket no longer hangs from the coat rack by the door. It looks like he's left. He probably went to attend to some other matter." "description">>
<<if $Rodriguezintro isnot true>>
<<switch visited()>>
<<case 1>>
<<addDialogue Casey "Maybe I should have talked to her before..." "talk">>
<</switch>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Go through the hallway|PasilloIntro]]">>
<<addDialogue "" "[[Exit|introexit1]]">>
<<horizontalEnd>>
<<set $entradaintro = true>><<dialogue "" "Before going back into the captain's office, you stop in front of the door." "description">>
<<addDialogue Casey "Pff... I've had enough of this for today." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Back|PasilloIntro]]">>
<<horizontalEnd>>
<<dialogue "" "You keep watching Henry and the woman behind the half-open door of his office, the weight of your resignation still crushing your chest. You expect to see Henry and the red-haired woman in her black dress continue their whispered conversation, but suddenly they’re locked in a passionate embrace, and then she kneels to begin pleasuring the captain." "description">>
<<addVideo "media/henry/spycaptain.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "What the hell? Henry, now, with her? She’s not his wife…" "thoughts">>
<<addVideo "media/henry/spycaptain2.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "The shock paralyzes you as their intensity grows, and an unexpected heat surges through your body, confusing and treacherous, until Henry’s climax erupts, releasing his sperm." "description">>
<<addVideo "media/henry/spycaptain3.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "But today, you’re not in the mood for this—rage ignites like wildfire. The betrayal burns, years of loyalty reduced to nothing" "description">>
<<addDialogue "" "He fires me without blinking, and now he’s here, like this? Damn him! I’m out!" "thoughts">>
<<addDialogue "" "With your heart pounding with fury, you decide it’s best to leave before they spot you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Leave|PasilloIntro]]">>
<<horizontalEnd>>
<<unlockVideo 5 1>>
<<unlockVideo 5 2>>
<<unlockVideo 5 3>>
<<set $lookInCaptain = true>>
<<set $CaptainCheating = true>><<dialogue "Casey" "Who are you? What are you doing here?" "talk">>
<<addDialogue "Margaret" "I am Sister Margaret. And I am here to give rest to those who cannot find it for themselves." "talk">>
<<addDialogue "" "She finally gazes directly at you, her beautiful face serene but her eyes stern." "description">>
<<addDialogue "Margaret" "The doors were opened once before... They thought they could control what lies beyond. Pride. Always pride." "talk">>
<<addDialogue "" "What the hell does that mean... I don’t understand anything." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[What doors|NunTalk3]]">>
<<horizontalEnd>>
<<showNPC "margaret" "img/characters/margaret/margaret.png" "Margaret">><<dialogue "Casey" "What doors? What are you talking about?" "talk">>
<<addDialogue "Margaret" "I know who you are, Detective Casey. Your sinful deeds weigh almost as heavily as the evil that dwells in this place." "talk">>
<<addDialogue "" "What? Maybe she has contacts in the police..." "thoughts">>
<<addDialogue "" "You see her touch her rosary, the beads making a soft sound that echoes in the room." "description">>
<<addDialogue "Margaret" "This place... it remembers. The stone and steel remember the screams, the prayers... answered by one who should not have listened." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Are you involved in all of this|NunTalk4]]">>
<<horizontalEnd>>
<<showNPC "margaret" "img/characters/margaret/margaret.png" "Margaret">><<dialogue "" "Are you involved in the kidnappings? Are you dangerous?" "description">>
<<addDialogue "Margaret" "No, Detective. I am simply... necessary. As you are now." "talk">>
<<addDialogue "" "Margaret remains silent for a few seconds as she approaches you, her presence unsettling. Once standing in front of you, she continues." "description">>
<<addDialogue "Margaret" "You must be careful, Detective... He has returned. The doctor with his notebooks and his certainty. And so the threshold weakens again." "talk">>
<<addDialogue "Casey" "Can you help me? I have questions." "talk">>
<<addDialogue "" "The woman brushes past you, murmuring something in Latin as she walks toward the door." "description">>
<<addDialogue "Margaret" "Libera nos a malo... sed malum iam intra muros est." "talk">>
<<addDialogue "" "What the hell does that mean?" "thoughts">>
<<addDialogue "" "She pauses for a moment at the threshold, her back to you." "description">>
<<addDialogue "Margaret" "Sometimes, help is simply being where you need to be when the time comes." "talk">>
<<addDialogue "" "That sounds more like luck" "thoughts">>
<<addDialogue "" "Margaret continues toward the room’s exit." "description">>
<<addDialogue "Casey" "Wait!" "talk">>
<<addDialogue "Margaret" "May God have mercy on your soul, Detective Casey. And may you find redemption before it’s too late. Or you won’t leave this place..." "talk">>
<<addDialogue "" "What the fuck?" "thoughts">>
<<addDialogue "" "Without waiting for a response, she leaves the room. You watch her move down the dark hallway, her pale figure gradually fading into the shadows until the darkness swallows her completely." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Process the encounter|ProcesingNunencounter]]">>
<<horizontalEnd>>
<<showNPC "margaret" "img/characters/margaret/margaret.png" "Margaret">><<dialogue "" "You stand still for a few seconds, processing the strange encounter." "description">>
<<addDialogue "" "How did she know my name? But what unsettles me most is the way she looked at me... as if she could see every mistake I’ve ever made..." "thoughts">>
<<addDialogue "Casey" "And what role do I play in all this? Pff... Maybe she’s just crazy." "talk">>
<<addDialogue "" "That’s it. She’s just a mad nun lost in this place, maybe even a former patient..." "thoughts">>
<<addDialogue "" "You glance toward the door where Sister Margaret disappeared and take a deep breath." "description">>
<<addDialogue "" "Whatever’s going on in this place... I’ll figure it out." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|roomD3]]">>
<<horizontalEnd>>
<<if window.gameState.lanternOn>>
<<goto "DoorEventLight">>
<<else>>
<<dialogue "" "Darkness surrounds you. The air feels stale with humidity. Occasional drops of water punctuate the silence. The floor beneath your feet alternates between worn stone and patches of slippery, unidentifiable substances. A faint, distant rumble resonates through the ground at irregular intervals, like the breath of something massive stirring in the depths. On the hallway wall stands a door. " "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check door|Door]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms B|BedroomB]]">>
<<addDialogue "" "[[Corridor - Bedrooms C|BedroomC]]">>
<<horizontalEnd>>
<</if>><<dialogue "" "An imposing door of dark wood, almost black, stands framed by carved columns and an elaborate stone pediment. Vegetal and geometric reliefs wind through the structure, but what disturbs most are the eyes: two enormous orbs sculpted into the upper lintel that seem to stare at you intently. The wood is weathered by time, with rectangular panels barely visible beneath layers of dust and age." "description">>
<<addImage "img/events/eventdoor.webp">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|EventSanity]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Back|DoorEvent]]">>
<<horizontalEnd>><<dialogue "" "The light reveals a long institutional corridor with peeling walls. Deteriorated bulletin boards hang askew, with yellowed papers and illegible medical notices. Exposed pipes run along the ceiling, occasionally dripping. On the walls, traces of scratches and frantic writing suggest the desperate communication attempts of former patients. On the hallway wall stands a door." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check door|Door]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms B|BedroomB]]">>
<<addDialogue "" "[[Corridor - Bedrooms C|BedroomC]]">>
<<horizontalEnd>> <<run window.GiftGivingUI.open('Ellen')>>
<<showNPC "ellen" "img/characters/ellen/ellen2.png" "Ellen">> <<dialogue "" "I think Ellen dont trust me..." "thoughts">>
<<addDialogue "" "You found a teddy bear!">>
<<run window.addItemFromDatabase('teddybear', 1)>>
<<addDialogue "" "[[Give Gift to Ellen|GiftToEllen]]">><<dialogue "" "The floor is a mirror of crystal so pure and transparent that it faithfully reflects the obsidian-black ceiling, creating the illusion of an infinite abyss beneath your feet. When you look down, you see absolute black stretching endlessly, edged by the reflection of the white walls curving in a perfect circle—like a luminous ring suspended in darkness. The contrast is total: blinding white walls against the void-black ceiling duplicated on the floor, making the space seem to double into a bottomless well where up and down merge into a single emptiness." "description">>
<<if $AlienPlanet isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Inspect the room|ESInspect]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|CellCorridorB2Light]]">>
<<horizontalEnd>>
<<if window.gameState.lanternOn>>
<<goto "doorEventLabLigth">>
<<else>>
<<dialogue "" "You walk down a long corridor, its walls stained with time and neglect. Every step forward is met with the faint creak of the floor beneath your feet. To one side, there's a strange door." "description">>
<<horizontalStart>>
<<if $LabDoorOpen isnot true>>
<<addDialogue "" "[[Check laboratory door|LabADoor]]">>
<</if>>
<<addDialogue "" "[[Check door|EventLabCorridor]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<if $LabDoorOpen is true>>
<<addDialogue "" "[[Laboratory|LabA]]">>
<</if>>
<<addDialogue "" "[[Back to Grand Hall|LabCorridorA]]">>
<<horizontalEnd>>
<<script>>
window.setLighting(60);
<</script>>
<</if>>
<<dialogue "" "You walk down a long corridor, your flashlight casting shaky light along the floor. The walls, stained by time and neglect, flicker in and out of view as the beam moves. Each step forward is met with the soft creak of the floor beneath your feet, while shadows dance around you. To one side, there's a strange door." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check door|EventLabCorridor]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Laboratory|LabA]]">>
<<addDialogue "" "[[Back to Grand Hall|LabCorridorA]]">>
<<horizontalEnd>>
<<script>>
window.setLighting(80);
<</script>><<dialogue "" "A massive wooden door stands before you. It's framed by an elaborate carved archway with intricate unrecognizable patterns running along both sides. At the top, a curved pediment displays a circular medallion with an occult symbol at its center." "description">>
<<addImage "img/events/labcorridoor.webp">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|EventSanityLab]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Back|LabCorridorA2]]">>
<<horizontalEnd>>
<<dialogue "" "You push open the heavy door and step across the threshold. Before you stretches a vast chamber with walls, floor, and ceiling of immaculate white, so pure they reflect light like mirrors. In the center, standing like sentinels, rise four black columns of polished obsidian, absorbing every ray that touches them. The contrast is hypnotic: infinite white against absolute black." "description">>
<<horizontalStart>>
<<if $columnsCheck isnot true>>
<<addDialogue "" "[[Check columns|BlackColumns]]">>
<<else>>
<<addDialogue "" "[[Check fourth column|fourthcolumn]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|LabCorridorA2]]">>
<<horizontalEnd>>
<<if $labEvent isnot true>>
<<goto "LabEvent">>
<</if>><<dialogue "" "You circle the first column. Its surface is cold, smooth, unmarked. The second is the same. The third returns your reflection distorted, as if the obsidian were alive." "description">>
<<addDialogue "" "The shadow... It must have come from here." "thoughts">>
<<addDialogue "" "Gives me the chills, but it feels safer now…" "talk">>
<<addDialogue "" "When you reach the fourth, your fingers find a vertical slot on the inner face. A rectangular metal socket, barely rusted at the edges. The perfect fit for a lever that isn’t there." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|LabCorridorA2]]">>
<<horizontalEnd>>
<<if $ELCDWin isnot true || $ELCDLose isnot true>>
<<goto "ELCD">>
<<else>>
<<set $columnsCheck = true>>
<</if>>
<<dialogue "" "You return to the fourth column. The metal socket is still empty; when you touch it, it vibrates faintly beneath your fingers." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Back|EventSanityLab]]">>
<<horizontalEnd>><<dialogue "" "The door closes behind you with a dry click that echoes like a heartbeat in the silence. The room is a perfect cube: walls, floor and ceiling of a surgical white that hasn't seen dust in decades. Four black columns rise in the center, so polished they look wet. The abandoned hospital should smell of mold and rust; here it only smells of nothing." "description">>
<<addDialogue "" "This doesn't make sense. The hallway outside is rotten... but this room looks freshly disinfected. How the hell does it stay like this?" "thoughts">>
<<addDialogue "Casey" "Look at this... not a speck of dust. Not a single crack. It's like someone comes to clean every night." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Check columns|BlackColumns]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|LabCorridorA2]]">>
<<horizontalEnd>>
<<set $labEvent = true>><<dialogue "" "When you approach the columns from the white ceiling, a guttural and wet laugh erupts like a broken echo. It is not human: it is a deep croak that scrapes the bones from the inside, twists around the black columns, and digs into the floor with a viscous echo, multiplying in every reflection until the entire room seems to be laughing." "description">>
<<addDialogue "Casey" "What the hell is that?!" "talk">>
<<addDialogue "" "From one of the columns, a shadow forms that emerges from the column, as black as the column itself. It slides like spilled oil, without a fixed shape. The shadow stretches, lengthens, and from its center sprouts an eye: a single red eye, swollen, that turns slowly, searching." "description">>
<<addDialogue "" "No. Not again, no. This can't be real..." "thoughts">>
<<addDialogue "Casey" "It can't be... I must be crazy!" "talk">>
<<addDialogue "" "The shadow whispers, with a touch that burrows into the mind: words that are not words, in an incomprehensible language. It approaches, and the air becomes thick, like rotten honey." "description">>
<<addDialogue "Casey" "Stay away! Don't come near!" "talk">>
<<addDialogue "" "The eye blinks once, slow, as if awakening from an eternal dream. Deep in its black pupil, your face is reflected: pale, contorted, eyes wide open. And then the shadow shudders, folds in on itself, and liquefies into your exact silhouette. It is you, but with skin made of living ink, lips sewn shut by threads of darkness, and a smile that does not belong to you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Figth|ELCDfigth]]">>
<<horizontalEnd>>
<<set $ELCD = 1>>
<<run startAdvancedBattle([
{
type: 'copy',
hp: 200,
distance: 20,
randomDistance: true,
speed: "5-8",
minMovement: 5,
maxMovement: 8,
damage: 15,
DamageIgnore: {
'pistol': 0.1,
'rifle': 0.1,
'shotgun': 0.1,
'melee': 0.1,
'incendiary': 0.1,
'dragon_breath': 0.1,
'tracer': 0.1,
'9mm': 0.1,
'.45': 0.1,
'slugs': 0.1
}
}
], 'ELCDwin', true, 'Event_ELCD_escape', false)>>
<<if window.ClothingSystem.currentClothes === 'jacket'>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<elseif window.ClothingSystem.currentClothes === 'coat'>>
<<setAvatarDirect "caseycoatpistol.png">>
<<else>>
<<setAvatarDirect "caseycoatpistol.png">>
<</if>>
<<dialogue "" "The shadow-double kneels, trembling, and extends a hand that is no longer a hand: fingers stretching like threads of smoke, trying to grab onto your ankles. But you step back and, with a quick movement, stomp on that ethereal hand." "description">>
<<addDialogue "Casey" "Go back to the hell that spawned you!" "talk">>
<<addDialogue "" "The shadow writhes before you, a final spasm of darkness shrinking like burning paper. The figure that was your reflection cracks from the center: first the false smile, then the empty eyes, until the fake skin peels away in black tatters that the air swallows. A final shriek erupts from its throat, and what remains of the body contracts, shrivels, reduces to a ball of pulsating darkness." "description">>
<<addDialogue "" "It's me... Only me... My God..." "thoughts">>
<<addDialogue "" "With one last effort, you lift your foot and bring it down hard on the shadow's core. The impact resonates like contained thunder. The black ball shatters into a thousand fragments flying in all directions, but they don't go far: they dissolve in the air, evaporate, leaving on the ground a package of stimulants." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take stimulants|ElCDItem|?!canPickupStim]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Let it and continue|EventSanityLab]]">>
<<horizontalEnd>>
<<set $ELCDWin = true>>
<<if $intro is true>>
<<if $CaseyJacket is true && $CaseyCoat isnot true>>
<<setAvatarDirect "caseyjacket.png">>
<<elseif $CaseyJacket isnot true && $CaseyCoat is true>>
<<setAvatarDirect "caseycoat.png">>
<<else>>
<<setAvatarDirect "casey2.png">>
<</if>>
<<elseif $intro isnot true>>
<<setAvatarDirect "casey.png">>
<</if>><<dialogue "" "You don't see the final blow coming. Your body spins in the air and crashes heavily against the ground. The impact steals your breath, and when you try to get up, your arms tremble and give out." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Event_ELCD_Lose2]]">>
<<addDialogue "" "<a tabindex="0" role="button" id="save-button">Load Game</a>">>
<<horizontalEnd>>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<script>>
window.HealthSanitySystem.addHealth(20)
<</script>>
<<set $ELCD = 2>>
<<set $ELCDLose = true>>
<<include "Change_MenuIMG">><<dialogue "" "From above, the laughter—your laughter, but twisted, cruel. The room transforms into a bedroom and a bed appears behind you, as if a vision had intruded from your mind into reality." "description">>
<<addDialogue "" "No... it can't end like this." "thoughts">>
<<addDialogue "" "Your double lunges at you with animal speed. Its weight crushes you against the cold floor. You try to resist, struggle, but your muscles don't obey as they should. Something else is happening. Something inside your head." "description">>
<<addDialogue "Casey" "No... let go of me..." "talk">>
<<addVideo "media/others/alienrape1.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "An invisible pressure digs into your mind like claws of ice. Your thoughts become slow, heavy, foreign. The clone, similar to you, but with clear differences—looks down at you with a satisfied smile. Its hands pull at your clothes. You hear the sound of fabric tearing, feel the cold air against your skin. You try to fight, push, scream, but your body barely responds. The mental pressure increases: a whisper that isn't a voice, that crawls directly into your brain." "description">>
<<addDialogue "Clon Shadow" "Relax. Let me in. I am you. I've always been you." "talk">>
<<addDialogue "" "NO! Fight!" "thoughts">>
<<addDialogue "" "But with each garment it tears away, it also takes a piece of your will. Your arms fall limp. Your breathing becomes shallow, controlled by something that isn't you. The red eye expands, fills your field of vision, and the last thing you see before darkness swallows you is your own face smiling victoriously over you." "description">>
<<addDialogue "Clon Shadow" "Now... you are mine." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Event_ELCD_Lose3]]">>
<<horizontalEnd>>
<<unlockVideo 12 9>>
<<setAvatarDirect "nude.png">><<dialogue "" "You stop in the center of the spherical room. The glass floor is so pure that the black obsidian ceiling duplicates itself beneath your feet; looking down you see an infinite abyss that sucks in your gaze. The curved white walls form a reflected luminous ring, like a halo floating in nothingness." "description">>
<<addDialogue "" "This looks like... a black hole." "thoughts">>
<<addDialogue "Casey" "God, it's like walking on an inverted sky." "talk">>
<<addDialogue "" "Suddenly, in the blackness of the floor-ceiling, tiny points of light flicker: distant stars that sprout like sparks in the absolute darkness. They shine for an instant, expand in cold flashes and fade just as quickly, swallowed by the obsidian before you can count them." "description">>
<<addDialogue "" "Stars... in here. It's not a reflection. I'm... I'm in the space?" "thoughts">>
<<addDialogue "Casey" "Shit... I just watched constellations go extinct under my boots. This isn't a hospital, it's a goddamn capsule in the space." "talk">>
<<addDialogue "" "You slide your hand along the wall: cold, smooth, seamless. The black ceiling absorbs your reflection; the floor returns it multiplied. There are no visible doors, only the perfect curve that joins white and black." "description">>
<<addDialogue "" "I can't make out the door I came through... "thoughts">>
<<addDialogue "Casey" "Shit... I'm trapped." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue watching|ESInspect2]]">>
<<horizontalEnd>>
<<set $AlienPlanet = true>>
<<dialogue "" "The glass floor dissolves into a liquid night. The white walls stretch out until they fade into the immensity like a subtle mist before disappearing completely, and the room expands into a living planetarium: millions of stars explode into unknown constellations, nebulae that spin slowly and comets that leave trails of cold fire." "description">>
<<addDialogue "Casey" "What... is happening? Where am I?" "talk">>
<<addDialogue "" "The glass floor has become an open abyss. At its exact center, a reddish-green speck pulses once and, without warning, the void rushes toward you: the point swells in a blink, the broken rings spin in a whirlwind, three dead moons cross like blades. The movement is fast, a yank that tears away your balance and churns your guts; you fall upward, the glass sucks you into the cosmos. In an instant, the planet fills the entire reflection, so close that its surface seems to graze the soles of your boots." "description">>
<<addDialogue "" "Amazing..." "thoughts">>
<<addImage "img/events/alienplanet.png">>
<<addDialogue "" "The planet hangs beneath your feet, its surface a mosaic of blood red and bile green, oceans of rusty red splattered with poisonous green stains, you can see continents fractured by a plate that bleeds black lava seeming to split the planet's surface, and a murky atmosphere that burns in shades of copper and emerald." "description">>
<<addDialogue "" "What is this...? This isn't... this planet... This is another world..." "thoughts">>
<<addDialogue "" "The reflection descends even further, tearing through the murky atmosphere like a sharp blade. Beneath your feet stretches an abandoned civilization: metropolises of collapsed hexagonal towers, black glass bridges hanging lifeless over dry canyons, wide avenues covered in silver dust that the wind no longer moves. There is no life, only ruins that whisper of a forgotten era." "description">>
<<addDialogue "" "This was great. Gigantic. And now... there's nothing left. What ended such a civilization?" "thoughts">>
<<addDialogue "" "The abyss narrows over a central city, with domes broken like open skulls. At its heart, a grim palace stands intact amid the chaos: walls of carved obsidian with symbols that burn in your peripheral vision, spiral towers that pierce copper clouds. Echoes of voices float from the reflection—monotonous chants, guttural prayers to a name you don't recognize, repeating in a loop that seems eternal, vibrating in your ears." "description">>
<<addDialogue "" "It sounds like some kind of prayer? Are there still people alive after all...?" "thoughts">>
<<addDialogue "" "The floor drags you again, this time toward the inside of the palace: you see empty hallways with frayed yellow tapestries, stairs that spiral down into darkness. The throne room opens like a wound: a vast hemicycle of black stone with columns crowned with crystal skulls. There, on a throne of twisted bone, it sits. A tall figure wrapped in tatters that seem made of pale gold that move without wind, mask of polished bone without features, crown of golden filaments that pulse like veins. Its eyes—bright red like embers—ignite and fix upon you. And it begins to whisper to you in a language you cannot understand. -Ash nazg ob shakh-gûl durbatulûk, ash nazg ob shakh-lat durbatulûk. Gakh ob ghâsh, gakh ob zigil.-" "description">>
<<addDialogue "" "Don't listen, Casey, no!" "thoughts">>
<<addDialogue "" "The whisper slides through your ears and, suddenly, pain explodes in your head like a red-hot nail splitting your skull. You scream, fall to your knees on the glass that now burns." "description">>
<<addDialogue "Casey" "Aggh! Shit!" "talk">>
<<addDialogue "" "Everything swirls—the planet, the ruins, the throne—and extinguishes in a white flash. The room returns: white walls, solid floor." "description">>
<<addDialogue "" "The pain recedes to a dull throb behind your eyes. Looking up, the curved wall now shows a thin crack of blue light: the exit that didn't exist before." "description">>
<<addDialogue "Casey" "Fuck, what kind of madness is this... shit, I need to get out of here." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|CellCorridorB2Light]]">>
<<horizontalEnd>> Increase //
if add: 1) window.addTrust('Ellen', 20) 2)<<addTrust "Ellen" 20>> or 3)<<run window.addTrust('Ellen', 20)>>
Set //
<<run window.TrustSystem.setTrust('Ellen', 50)>>
Conditional //
<<if window.TrustSystem.getTrust('Ellen') >= 50>>
Ellen trusts you enough to leave and suck you.
<<addDialogue "Ellen" "We can leave now">>
<<else>>
Ellen doesn't trust you enough yet. No sucking, loser
<<addDialogue "Ellen" "I'm not ready to suck you">>
<</if>>
<<dialogue "" "You take the stimulants and store them in your backpack." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|EventSanityLab]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('stim', 3);<</script>><<dialogue "" "They cause involuntary shivers. You feel how the mental grip tightens, a velvet noose around your thoughts." "description">>
<<addDialogue "" "Yes..." "thoughts">>
<<addDialogue "" "It whispers directly into your mind with a compulsion that feels like your own desire blooming from within. You want it. You've always wanted to surrender to desire. " "description">>
<<addVideo "media/others/alienrape2.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" " No, this isn't me... " "thoughts">>
<<addDialogue "" "But the thought dissolves like smoke, replaced by an insatiable carnal hunger. Acceptance seeps in, fabricated but undeniable. Your legs part under its influence, your body arches in response to the mental commands flooding your senses, and you yield to its will, completely absorbed in the act. " "description">>
<<addVideo "media/others/alienrape3.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "Casey" "Ahh... Hmm... " "talk">>
<<addDialogue "" "You gasp, a mix of protest and pleasure escaping your lips, but the words twist amid moans of pleasure and pain wrought by the entity's enormous member. The room spins, reality blurs as the clone's essence merges deep, spreading throughout your body." "description">>
<<addDialogue "Casey" "Ohh! Ahh! Fill me!" "talk">>
<<addDialogue "" " Fill me..." "thoughts">>
<<addVideo "media/others/alienrape4.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "Casey" "Hpmhf..." "talk">>
<<addDialogue "" "The darkness recedes slightly, leaving you exhausted on the bed, the clone's form fading back into shadow... Until, after a few moments, you regain your will... But knowing you've lost." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Get up|Event_ELCD_Lose4]]">>
<<horizontalEnd>>
<<unlockVideo 12 10>>
<<unlockVideo 12 11>>
<<unlockVideo 12 12>>
<<set $Corruption += 5>><<dialogue "" "You slowly prop yourself up, the bed beneath you dissolving like mist as the room reverts to its original state: the black columns reappear, rising silently from the floor, the air clearing of the heavy scent of semen. Sweat still glues strands of hair to your forehead. Your muscles protest with a sweet exhaustion, and between your legs you feel the lingering wetness, a sticky reminder of the total invasion." "description">>
<<addDialogue "Casey" "God... " "talk">>
<<addDialogue "" "It... it fucked my mind and soul... But I feel... good..." "thoughts">>
<<addDialogue "Casey" "No choice left, I have to move forward... " "talk">>
<<addDialogue "" " Fuck, I hope I run into it again..." "thoughts">>
<<addDialogue "" " You get dressed quickly, your heart pounding like a drum in your chest, while adrenaline still courses through your veins. Your shirt clings to your sweaty skin, your pants pull up in a hurry, and your belt snaps shut." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Keep moving|EventSanityLab]]">>
<<horizontalEnd>>
<<set $ELCDLose = true>>
<<include "Change_MenuIMG">><<disableSanityEvents>>
<<enableSanityEvents>> <<disableSanityEvents>> <<disableSanityEvents>><<dialogue "" "You manage to take down the lobotomized patient. He falls to the floor and lies motionless, his vacant eyes staring at the ceiling." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Let it|SRcorridor2]]">>
<<horizontalEnd>>
<<goto "SRcorridor2">>
<<set $srcsf = 2>><<set $randombandage = random(3)>>
<<if $randombandage is 3>>
<<dialogue "" "You manage to take down the nurse. She falls to the floor and lies motionless. You find some bandages on her body." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take bandages|CellCorridorA2Item|?!canPickupBandages]]">>
<<addDialogue "" "[[Let it|CellCorridorA2]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "You manage to take down the nurse. She falls to the floor and lies motionless." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|CellCorridorA2]]">>
<<horizontalEnd>>
<</if>>
<<set $corridorANurse = 0>>
<<dialogue "" "You tuck the bandages into your backpack." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|CellCorridorA2]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('bandages', 3);<</script>>
<<dialogue "" "You tuck the bandages into your backpack." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|CellCorridorA2]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('bandages', 3);<</script>><<set $randombandage = random(3)>>
<<if $randombandage is 3>>
<<dialogue "" "You manage to defeat the demon baby. It collapses with an unsettling screech, its twisted form going still. You find some bandages near its body." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take bandages|CellCorridorA2Item|?!canPickupBandages]]">>
<<addDialogue "" "[[Let it|CellCorridorA2]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "You manage to defeat the demon baby. It collapses with an unsettling screech, its twisted form going still on the cold floor." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|CellCorridorA2]]">>
<<horizontalEnd>>
<</if>>
<<set $DemonA2 = 0>><<set $randombandage = random(3)>>
<<if $randombandage is 3>>
<<dialogue "" "You manage to defeat the demon baby. It collapses with an unsettling screech, its twisted form going still. You find some bandages near its body." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take bandages|CellCorridorA2Item|?inventoryFull]]">>
<<addDialogue "" "[[Let it|CellCorridorA2]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "You manage to defeat the demon baby. It collapses with an unsettling screech, its twisted form going still on the cold floor." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|CellCorridorA2]]">>
<<horizontalEnd>>
<<set $BedroomBPeleaBB = 0>><<dialogue "" "Your shadow clone glides toward you. You realize your only option is to flee. You dash toward the door and escape the room just as that thing is about to reach you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Escape|LabCorridorA2]]">>
<<horizontalEnd>>
<<set $ELCDLose = false>>
<<set $ELCDWin = false>>
<<if $intro is true>>
<<if $CaseyJacket is true && $CaseyCoat isnot true>>
<<setAvatarDirect "caseyjacket.png">>
<<elseif $CaseyJacket isnot true && $CaseyCoat is true>>
<<setAvatarDirect "caseycoat.png">>
<<else>>
<<setAvatarDirect "casey2.png">>
<</if>>
<<elseif $intro isnot true>>
<<setAvatarDirect "casey.png">>
<</if>><<dialogue "Casey" "Give me the card" "talk">>
<<addDialogue "" "She trembles as she pulls something from her hands and hands you a card—it’s the 'Laboratory Access Card'—before curling up again, her gaze vacant." "description">>
<<addDialogue "Ellen" "Take this..." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Take the card|labkey2|?inventoryFull]]" "">>
<<addDialogue "" "[[Leave her for now|Cell10]]">>
<<horizontalEnd>>
<<showNPC "ellen" "img/characters/ellen/ellen2.png" "Ellen">><<dialogue "" "You grab the access card and put it in your backpack." "description">>
<<addDialogue "Casey" "Thank you… I think you’re pretty smart for managing to get the card." "talk">>
<<addDialogue "" "She looks at you, offering a faint, fleeting smile, then lowers her gaze, her expression turning sad and melancholic. She doesn’t respond." "description">>
<<horizontalStart>>
<<addDialogue "" "[[I’m here to help you|OfferHelp]]">>
<<addDialogue "" "[[How are you feeling?|AskState]]" "">>
<<addDialogue "" "[[Leave her for now|Cell10]]">>
<<horizontalEnd>>
<<showNPC "ellen" "img/characters/ellen/ellen2.png" "Ellen">>
<<set $labkey = true>>
<<script>>
addQuestWithStages(
"Lab Investigation",
"Something strange is happening in the hospital. Reach the laboratory and find evidence to uncover what's going on.",
[
"Locate the laboratory on the first floor.",
"Search for clues in the laboratory. Examine the area for evidence about what's happening."
],
"📋",
"main",
"lab_investigation", // Custom ID
"img/lab_mission.png" // Quest image
);
// Add stage images so completion notifications show the quest image
if (window.questSystem && window.questSystem.quests["lab_investigation"]) {
window.questSystem.quests["lab_investigation"].stageImages = [
"img/lab_mission.png", // Stage 1
"img/lab_mission.png" // Stage 2
];
}
State.variables.labMissionId = "lab_investigation";
<</script>>
<<script>>
const itemKey = 'labcard';
const itemName = 'Magnetic Card (laboratory)';
const itemDescription = 'A small magnetic keycard labeled access to laboratory in Charles Francis Hospital.';
const itemValue = 100;
const imagePath = `img/items/keys/labcard.png`;
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "special",
image: imagePath,
stackable: false,
maxStack: 1,
value: itemValue,
weight: 0.1,
isSellable: false,
};
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 1,
img: imagePath
};
//Adding item ro inventory
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
window.ShopSystem.populateSellItems();
<</script>><<if $AmmoRoomD2 is true>>
<<dialogue "" "An old wheelchair sits abandoned in the corner, its metal frame corroded and its torn leather seat slick with damp. One wheel leans at an awkward angle, as if it hasn’t moved in years." "description">>
<<else>>
<<dialogue "" "You approach the decaying wheelchair, its frame letting out a faint creak as you touch it. Something on the seat catches your attention. On the cracked leather rests a box of pistol bullets." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take ammo|AmmoRoomD2|?!canPickupPistolAmmo]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<addDialogue"" "[[Back|roomD2]]">>
<<horizontalEnd>>
<<dialogue "" "You pocket the bullets and continue on your way." "description">>
<<horizontalStart>>
<<addDialogue"" "[[Back|roomD2]]">>
<<horizontalEnd>>
<<set $AmmoRoomD2 = true>>
<<script>>window.addItemFromDatabase('pistol_ammo', 24);<</script>><<addDialogue "" "<<bak>>">>|?!canPickupRifleAmmo
|?!canPickupShotgunShells
|?!canPickupMedkit
|?!canPickupBandages
|?!canPickupStim
|?!canPickupAntidep
|?!canPickupPills
|?!canPickupPistolAmmo
|?!canPickupMediumBattery
|?!canPickupMagnumAmmo
|?!canPickupSMGAmmo
|?!canPickupAntibiotics
|?!canPickupHealthPack
|?!canPickupSanityPills
|?!canPickupCheapBattery
|?!canPickupDuracellBattery
|?!canPickupPistolAmmo
|?!canPickupPistolAmmoExpansive
|?!canPickupPistolAmmoIncendiary
RIFLE AMMO:
|?!canPickupRifleAmmo
|?!canPickupRifleAmmoPiercing
|?!canPickupRifleAmmoTracer
SHOTGUN AMMO:
|?!canPickupShotgunShells
|?!canPickupShotgunSlug
|?!canPickupShotgunDragon
SMG AMMO:
|?!canPickupSmgAmmo
|?!canPickupSmgAmmoIncendiary
MAGNUM AMMO:
|?!canPickupMagnumAmmo
<<addDialogue "" "[[Take batteries|batteria medium|?!canPickupMediumBattery]]">>
<<addDialogue "" "[[Take batteries cheap|batteria|?!canPickupBattery]]">>
<<addDialogue "" "[[Take batteries duracell|duracell|?!canPickupDuracellBattery]]">>
<<addDialogue "" "[[Take pills|pills|?!canPickupPills]]">>
<<addDialogue "" "[[Take Antibiotics|Antibiotics|?!canPickupAntibio]]">>
<<addDialogue "" "[[Take Antidep|Antidep|?!canPickupAntidep]]">>
<<addDialogue "" "[[Take medkit|medkit|?!canPickupMedkit]]">>
<<addDialogue "" "[[Take vendas|vendas|?!canPickupBandages]]">>
<<addDialogue "" "[[Take stims|stims|?!canPickupStim]]">>
<<addDialogue "" "[[Take ammo incendiary|incendiary|?!canPickupPistolAmmoIncendiary]]">>
<<addDialogue "" "[[Take ammo incendiary|expansive|?!canPickupPistolAmmoExpansive]]">>
<<addDialogue "" "[[Take piercing rifle|piercing|?!canPickupRifleAmmoPiercing]]">>
<<addDialogue "" "[[Take ammo rifle|rifle|?!canPickupRifleAmmo]]">>
<<addDialogue "" "[[Take tracer rifle|rifletracer|?!canPickupRifleAmmoTracer]]">>
<<addDialogue "" "[[Take dragon shotgun|dragon|?!canPickupShotgunDragon]]">>
<<addDialogue "" "[[Take ammo shotgun|shotgun|?!canPickupShotgunShells]]">>
<<addDialogue "" "[[Take fire shotgun|shotgunslug|?!canPickupShotgunSlug]]">>
<<addDialogue "" "[[Take SMG ammo|smgusual|?!canPickupSmgAmmo]]">>
<<addDialogue "" "[[Take incendiary SMG ammo|smgfire|?!canPickupSmgAmmoIncendiary]]">><<addDialogue "" "<<bak>>">><<addDialogue "" "<<bak>>">><<addDialogue "" "<<bak>>">><<addDialogue "" "<<bak>>">><<addDialogue "" "<<bak>>">><<addDialogue "" "<<bak>>">><<addDialogue "" "<<bak>>">><<addDialogue "" "<<bak>>">><<dialogue "" "You approach the pile of ammunition stacked in the corner of the room. Without hesitation, you grab a magazine loaded with magnum bullets." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('magnum_ammo', 50);<</script>><<dialogue "" "You approach the table and pick up the revolver." "description">>
<<addDialogue "Casey" "Mmm... Interesting." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<horizontalEnd>>
<<set $introrevolver = true>>
<<script>>window.addItemFromDatabase('revolver_357', 1);<</script>>
<<if $BarrelsGardenCheck isnot true>>
<<dialogue "" "You push through the weeds to the barrels. The first lid scrapes open: inside, a box of 9 mm rounds wrapped in a grimy rag. You pocket it. The second barrel holds nothing but rust and quiet." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take ammo|GardenBarrelsAmmo|?!canPickupPistolAmmo]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "You pry open the first one carefully: empty, nothing left. The second remains just as useless." "description">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Back|Garden-RightPath]]">>
<<horizontalEnd>><<dialogue "" "You pick up the box of 9 mm ammo and stash it in your backpack." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Garden-RightPath]]">>
<<horizontalEnd>>
<<set $BarrelsGardenCheck = true>>
<<script>>window.addItemFromDatabase('pistol_ammo', 30);<</script>><<dialogue "" "As you step into the living room, the stale, closed-up smell mixed with old disinfectant hits you like a slap. One step, two steps; you look around: sagging couches, a TV thick with dust, stained wall. And then, right in the middle of the room, sitting on a chair, there’s a woman in a nurse’s uniform." "description">>
<<addVideo "media/others/mast.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "Casey" "Holy fucking shit!" "talk">>
<<addDialogue "" "You lock eyes with her at the exact moment she’s undoing the last buttons. The fabric falls open and her breasts spill out. Without looking at you, she spreads her legs wide over the chair and slides her right hand straight between her thighs. She starts touching herself slowly, in steady circles, while her head drops back and a long, trembling sigh escapes her throat." "description">>
<<addDialogue "" "She hasn’t seen me…" "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Wait and watch|NurseMast]]">>
<<addDialogue "" "[[Interrupt the nurse|InterruptNurse]]">>
<<horizontalEnd>>
<<set $LNurseMeet = true>>
<<unlockVideo 12 13>>
<<addDialogue "" "<<bak>>">><<addDialogue "" "<<bak>>">><<addDialogue "" "<<bak>>">><<addDialogue "" "<<bak>>">><<addDialogue "" "<<bak>>">><<addDialogue "" "<<bak>>">><<addDialogue "" "<<bak>>">><<dialogue "" "You approach the pile of ammunition stacked in the corner of the room. Without hesitation, you grab a magazine loaded with magnum bullets." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<horizontalEnd>>
<<addItem "medium_battery" 3>>
<<dialogue "" "You approach the pile of ammunition stacked in the corner of the room. Without hesitation, you grab a magazine loaded with magnum bullets." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('antibio', 3);<</script>>
<<dialogue "" "You approach the pile of ammunition stacked in the corner of the room. Without hesitation, you grab a magazine loaded with magnum bullets." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('antidep', 3);<</script>>
<<dialogue "" "You approach the pile of ammunition stacked in the corner of the room. Without hesitation, you grab a magazine loaded with magnum bullets." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<horizontalEnd>>
<<addItem "battery" 5>>
<<dialogue "" "You approach the pile of ammunition stacked in the corner of the room. Without hesitation, you grab a magazine loaded with magnum bullets." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<horizontalEnd>>
<<addItem "duracell_battery" 1>><<dialogue "" "You approach the pile of ammunition stacked in the corner of the room. Without hesitation, you grab a magazine loaded with magnum bullets." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('pills', 5);<</script>><<dialogue "" "You approach the pile of ammunition stacked in the corner of the room. Without hesitation, you grab a magazine loaded with magnum bullets." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('medkit', 3);<</script>><<dialogue "" "You approach the pile of ammunition stacked in the corner of the room. Without hesitation, you grab a magazine loaded with magnum bullets." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('bandages', 3);<</script>><<dialogue "" "You approach the pile of ammunition stacked in the corner of the room. Without hesitation, you grab a magazine loaded with magnum bullets." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('stim', 2);<</script>><<dialogue "" "You approach the pile of ammunition stacked in the corner of the room. Without hesitation, you grab a magazine loaded with magnum bullets." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('pistol_ammo_incendiary', 20);<</script>><<dialogue "" "You approach the pile of ammunition stacked in the corner of the room. Without hesitation, you grab a magazine loaded with magnum bullets." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('pistol_ammo_expansive', 12);<</script>><<dialogue "" "You approach the pile of ammunition stacked in the corner of the room. Without hesitation, you grab a magazine loaded with magnum bullets." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('rifle_ammo', 30);<</script>><<addDialogue "" "<<bak>>">><<dialogue "" "You approach the pile of ammunition stacked in the corner of the room. Without hesitation, you grab a magazine loaded with magnum bullets." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('rifle_ammo_piercing', 15);<</script>><<dialogue "" "You approach the pile of ammunition stacked in the corner of the room. Without hesitation, you grab a magazine loaded with magnum bullets." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('rifle_ammo_tracer', 20);<</script>><<dialogue "" "You approach the pile of ammunition stacked in the corner of the room. Without hesitation, you grab a magazine loaded with magnum bullets." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('shotgun_shells', 12);<</script>><<addDialogue "" "<<bak>>">><<addDialogue "" "<<bak>>">><<dialogue "" "You approach the pile of ammunition stacked in the corner of the room. Without hesitation, you grab a magazine loaded with magnum bullets." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('shotgun_dragon', 6);<</script>>
<<addDialogue "" "<<bak>>">><<addDialogue "" "<<bak>>">><<dialogue "" "You approach the pile of ammunition stacked in the corner of the room. Without hesitation, you grab a magazine loaded with magnum bullets." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('shotgun_slug', 8);<</script>>
<<addDialogue "" "<<bak>>">><<addDialogue "" "<<bak>>">><<addDialogue "" "<<bak>>">><<addDialogue "" "<<bak>>">><<addDialogue "" "<<bak>>">><<dialogue "" "You approach the pile of ammunition stacked in the corner of the room. Without hesitation, you grab a magazine loaded with magnum bullets." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('smg_ammo', 50);<</script>><<dialogue "" "You approach the pile of ammunition stacked in the corner of the room. Without hesitation, you grab a magazine loaded with magnum bullets." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('smg_ammo_incendiary', 30);<</script>><<dialogue "" "The laboratory is lit by the flickering red emergency light that blinks every few seconds. Everything is covered in that thick, whitish substance: it piles up along the edges, slowly drips from most surfaces, and forms puddles that reflect the light like cream. The long metal tables are tilted toward central drains, with lateral supports left open and stained with the same substance. A large metal cabinet has its door slightly ajar; from the gap, a viscous thread stretches down to the floor and keeps growing. The tall, vertical preservation chamber has its door cracked open. Its surface is coated in that same cream, marked by deep imprints of unnaturally long fingers. The air is hot, humid, and smells of iron and something sickly sweet that clings to the throat." "description">>
<<addDialogue "Casey" "Something really fucked-up happened here." "talk">>
<<addDialogue "" "Everything is still. Too still." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Examine cabinet|Labcabinet]]">>
<<addDialogue "" "[[Examine preservation chamber|Labchamber]]">>
<<addDialogue "" "[[Examine tables|Labtables]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Back|LabA]]">>
<<horizontalEnd>>
<<set $LabCheck = true>><<if $LabMedkit is true>>
<<dialogue "" "You open the cabinet and the door swings wide on its own with a wet sigh. The thick, whitish substance spills out hot and heavy, splashing your boots and quickly rising to your ankles." "description">>
<<else>>
<<dialogue "" "You open the cabinet and the door swings wide on its own with a wet sigh. The thick, whitish substance spills out hot and heavy, splashing your boots and quickly rising to your ankles. Inside, among broken tubes and shattered syringes, a wall-mounted metal medkit hangs crooked, half-sunken in the cream. The red cross is almost completely erased by the crusted white layer." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take medkit|LabMedkit|?!canPickupMedkit]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Back|LabA]]">>
<<horizontalEnd>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "You rummage through overturned microscopes, cracked Petri dishes, and shattered sample containers. You push aside a stack of soaked folders and, amid the chaos, spot several items on the table: a handwritten note next to a photograph, a surgical hook with a wide serrated tip, a small glass fuse half-buried among the shards of broken glass, and, at the far end—half-hidden behind a fallen metal screen and piles of jagged debris—the dark, towering silhouette of a strange machine you hadn’t noticed before: a tall cylindrical tower of brushed steel and armored glass, completely powered down and coated in dust and dried splatters." "description">>
<<addDialogue "Casey" "Well, well… what do we have here?" "talk">>
<<addDialogue "" "On the table lies a surgical hook with a wide, serrated tip—designed to pierce and separate tissue. Long, sharp, with a wicked curve at the end perfect for snagging and tearing. Someone left their toy behind." "description">>
<<addDialogue "" "This isn’t standard medical gear…" "thoughts">>
<<addDialogue "" "Amid the scattered debris and broken glass glints a small cylindrical fuse, its thin filament still intact. Someone yanked it out in a hurry." "description">>
<<addDialogue "Casey" "Looks like somebody left us a little present… in a real damn rush." "thoughts">>
<<default>>
<<dialogue "" "You scan the stainless steel lab tables along the walls. Same mess as before—overturned microscopes, cracked Petri dishes, broken sample containers. Nothing’s moved. In the back, still half-buried behind the collapsed metal screen and the pile of shattered glass, the dark bulk of the cylindrical mixing tower looms exactly where you left it." "description">>
<</switch>>
<<horizontalStart>>
<<if $Labnote isnot true>>
<<addDialogue "" "[[Take the note|TomarNote]]">>
<</if>>
<<if $Labphoto isnot true>>
<<addDialogue "" "[[Take the photograph|TomarFoto]]">>
<</if>>
<<if $metalhook isnot true>>
<<addDialogue "" "[[Take the surgical hook|LabWeapon]]">>
<</if>>
<<if $LabFuse isnot true>>
<<addDialogue "" "[[Take the fuse|TomarFusible|?inventoryFull]]">>
<</if>>
<<if $CheckMachine isnot true>>
<<addDialogue "" "[[Examine the machine|SerumMixer]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Back|LabA]]">>
<<horizontalEnd>><<if $LabSerum isnot true>>
<<dialogue "" "You approach the preservation chamber. The steel door is covered in a thick, whitish crust. The handle is hot. When you pull, the door swings open on its own with a wet, sucking click. Inside, it’s freezing. At the back, there’s a steel rack holding four dark glass vials. Three are shattered and empty. The fourth is intact, sealed with a red rubber stopper and a half-dissolved label: PROJECT MOTHER – ANTISERUM" "description">>
<<addDialogue "Casey" "What the fuck is this..?" "talk">>
<<addDialogue "" "The liquid inside is an intense electric blue and glows faintly on its own. Tiny bubbles slowly rise and fall." "description">>
<<horizontalStart>>
<<if $SerumMixer is true>>
<<addDialogue "" "[[Take the antiserum vial|TakeAntiserum|?inventoryFull]]">>
<</if>>
<<addDialogue "" "[[Go back|LabA]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "You approach the preservation chamber. Inside, there is only cold and emptiness." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go back|LabA]]">>
<<horizontalEnd>>
<</if>>
<<dialogue "" "You yank it free with a jerk and stash it in your backpack." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|LabA]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('medkit', 1);<</script>>
<<set $LabMedkit = true>><<dialogue "" "In the center of this part of the laboratory, there are several stainless steel tables equipped with adjustable supports and limb restraints. The tables feature drainage channels and have remnants of coagulated fluids accumulated along the edges." "description">>
<<if $LabCheck isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check the lab|LabCheck]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Examine the beds|LabBeds]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Laboratory West|LabA]]">>
<<addDialogue "" "[[Corridor to incubation room|Incorridor]]">>
<<horizontalEnd>>
<<script>>
window.setLighting(60);
<</script>>
<<dialogue "" "You approach slowly. Suddenly, she tenses up, like an animal that smells danger. She jerks her head up, eyes wide open. She locks her gaze on you, a mix of shock and fury." "description">>
<<addDialogue "Nurse" "Who the fuck are you, and what are you doing here?" "talk">>
<<addDialogue "" "You instinctively take half a step back, raising your hands in a gesture of peace." "description">>
<<addDialogue "Casey" "Easy… my name’s Casey. I’m investigating a case here at the hospital. I didn’t mean to scare you." "talk">>
<<addDialogue "" "She clenches her jaw, sizing you up from head to toe with pure distrust. The chair creaks as she leans forward a little, ready to spring if necessary." "description">>
<<addDialogue "Nurse" "Investigating? Sure, just like everyone who shows up out of nowhere. Are you a cop? A journalist? Hospital security? Because if you’ve come to fuck with me, I swear…" "talk">>
<<addDialogue "" "She cuts herself off abruptly. Takes a deep breath, runs a trembling hand over her face, and the anger drains out of her as fast as it flared up. She stares at the floor for an endless second, shoulders slumped." "description">>
<<addDialogue "Nurse" "Never mind. I don’t give a damn who you are." "talk">>
<<addDialogue "" "She looks up again, but the rage is gone; there’s only a weariness that seems to weigh a thousand tons." "description">>
<<addDialogue "Nurse" "I’ve been alone in here for so long that I’m not even sure I exist when no one’s looking at me." "talk">>
<<addDialogue "" "Her voice cracks, barely above a whisper." "description">>
<<addDialogue "Nurse" "Tell me you know someone. Please. Man, woman… doesn’t matter to me. Anyone who’d be willing to come, to talk, to touch me, anything. Just someone who can remind me I’m still alive. Please…" "talk">>
<<horizontalStart>>
<<if $BrunoMeet is true || $FranklinMeet is true>>
<<addDialogue "" "[[Yes|NurseYes]]">>
<</if>>
<<addDialogue "" "[[No|NegativeNurse]]">>
<<horizontalEnd>>
<<showNPC "nurse" "img/monsters/nurses/naked_nurse4.png" "Nurse">><<dialogue "" "You stand frozen in the doorway, barely breathing. She still hasn’t seen you. Her fingers move faster now, buried deep between her slick folds. Her breasts rise and fall with every ragged gasp; her hard nipples cut through the cold, stale air of the abandoned room." "description">>
<<addVideo "media/others/mast2.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "Oh God..." "thoughts">>
<<addDialogue "" "A low moan slips from her throat, long and trembling. Her head falls further back, neck straining, mouth half-open. Her thighs shake. Her fingers turn frantic, almost violent. Suddenly her back arches as if electrified. A choked, guttural cry fills the dusty room while her body jerks in short, brutal spasms. Her hand freezes, pressing hard against herself, as if trying to stretch the pleasure a few seconds longer." "description">>
<<addVideo "media/others/mast3.webm" "" "vertical" "true" "false" "false" "false">>
<<addDialogue "" "Then, silence. Only her ragged breathing and the faint trickle of sweat sliding between her breasts." "description">>
<<addDialogue "" "Maybe I can talk to her now..." "thoughts">>
<<addDialogue "" "Even though I'm not sure if I should..." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Talk to her|NurseTalk]]">>
<<addDialogue "" "[[Back|Livingroom]]">>
<<horizontalEnd>>
<<unlockVideo 12 14>>
<<unlockVideo 12 15>><<dialogue "" "You stare for one second longer, your heart pounding in your throat. You take one step forward, then another, until your shoes creak on the dusty floor. She startles, her eyes snap open, and her hand freezes between her thighs. The other shoots up quickly to cover her breasts, even though her blouse is already wide open." "description">>
<<addDialogue "Nurse" "What the fuck…? Who the hell are you?" "talk">>
<<addDialogue "Casey" "I… I just…" "talk">>
<<addDialogue "" "She sits up a little in the chair. Fury flashes across her face like lightning, and without waiting for an answer, she hurls another question at you." "description">>
<<addDialogue "Nurse" "Do you think it’s normal to barge in like that and just stand there staring? Get the fuck out!" "talk">>
<<addDialogue "Casey" "I’m in the middle of an investigation… I have some questions…" "talk">>
<<addDialogue "" "The woman ignores you, doesn’t move. She’s breathing hard, shoulders tense. Suddenly the anger drains from her face and she hugs herself, staring blankly at the floor." "description">>
<<addDialogue "Nurse" "God… I’m so fucking tired of this. So sick of being alone all goddamn day… and night. The patients don’t satisfy me…" "talk">>
<<addDialogue "" "She looks up at you again, no longer caring about why you’re there." "description">>
<<addDialogue "Nurse" "You… you know someone, don’t you? Tell me you do. Tell me you know someone… some guy, or… woman, doesn’t matter… someone who’d keep me company." "talk">>
<<horizontalStart>>
<<if $BrunoMeet is true || $FranklinMeet is true>>
<<addDialogue "" "[[Yes|NurseYes]]">>
<</if>>
<<addDialogue "" "[[No|NegativeNurse]]">>
<<horizontalEnd>>
<<showNPC "nurse" "img/monsters/nurses/naked_nurse4.png" "Nurse">><<dialogue "Casey" "I’m sorry… No, I don’t know anyone like that." "talk">>
<<addDialogue "" "The nurse’s face hardens instantly. The tiny spark of hope that had flickered in her eyes dies out as if you’d pinched a match between your fingers. She drops her gaze to the floor, shoulders sagging even lower." "description">>
<<addDialogue "Nurse" "Of course… Of course you don’t" "talk">>
<<addDialogue "" "Silence stretches on forever. Then she lifts her eyes again, but there’s no anger left, no pleading; just a hollow void." "description">>
<<addDialogue "Nurse" "Get out." "talk">>
<<addDialogue "Casey" "But I just wanted to..." "talk">>
<<addDialogue "Nurse" "Out of here! Now!" "talk">>
<<addDialogue "" "She doesn’t answer any more questions. She turns toward the wall, curling in on herself in the chair as if trying to vanish inside her own body. She never looks at you again." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Bye|Livingroom]]">>
<<addDialogue "" "[[Attack her|NegativeAttack]]">>
<<horizontalEnd>>
<<showNPC "nurse" "img/monsters/nurses/naked_nurse4.png" "Nurse">><<run startAdvancedBattle([
{
type: 'nakednurse',
hp: 120,
distance: 15,
randomDistance: true,
speed: "3-6",
minMovement: 3,
maxMovement: 6,
damage: 10,
DamageIgnore: {
'pistol': 0.1,
'rifle': 0.1,
'shotgun': 0.1,
'melee': 0.1,
'incendiary': 0.1,
'dragon_breath': 0.1,
'tracer': 0.1,
'9mm': 0.1,
'.45': 0.1,
'slugs': 0.1
}
}
], 'NurseWinLR', true, 'NurseEscapeLR', false)>>
<<if window.ClothingSystem.currentClothes === 'jacket'>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<elseif window.ClothingSystem.currentClothes === 'coat'>>
<<setAvatarDirect "caseycoatpistol.png">>
<<else>>
<<setAvatarDirect "caseycoatpistol.png">>
<</if>><<dialogue "Casey" "Yeah… I think I do know someone…" "talk">>
<<addDialogue "" "The nurse blinks rapidly. She stares at you, holding her breath, her eyes suddenly gleaming with hope." "description">>
<<addDialogue "Nurse" "Who? Who is it? And where is he?" "talk">>
<<horizontalStart>>
<<if $BrunoMeet is true>>
<<addDialogue "" "[[Bruno|NurseB]]">>
<</if>>
<<if $FranklinMeet is true>>
<<addDialogue "" "[[Franklin|NurseF]]">>
<</if>>
<<addDialogue "" "[[Bye|Livingroom]]">>
<<horizontalEnd>>
<<dialogue "" "The echo of the gunshot reverberates through the abandoned room like a dry thunderclap. The impact lifts her from the chair, hurling her backward; she falls on her back with her legs splayed open. You approach slowly. There, beneath the chair—half-hidden between her thighs, her pussy fully exposed—you spot a small white package with a red cross: a medkit. " "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take medkit|MedkitLR|?!canPickupMedkit]]">>
<<addDialogue "" "[[Let it|Livingroom]]">>
<<horizontalEnd>>
<<set $LNurseDeath = true>>
<<if $intro is true>>
<<if $CaseyJacket is true && $CaseyCoat isnot true>>
<<setAvatarDirect "caseyjacket.png">>
<<elseif $CaseyJacket isnot true && $CaseyCoat is true>>
<<setAvatarDirect "caseycoat.png">>
<<else>>
<<setAvatarDirect "casey2.png">>
<</if>>
<<elseif $intro isnot true>>
<<setAvatarDirect "casey.png">>
<</if>><<dialogue "" "You escape from the naked nurse." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Livingroom]]">>
<<horizontalEnd>>
<<if $intro is true>>
<<if $CaseyJacket is true && $CaseyCoat isnot true>>
<<setAvatarDirect "caseyjacket.png">>
<<elseif $CaseyJacket isnot true && $CaseyCoat is true>>
<<setAvatarDirect "caseycoat.png">>
<<else>>
<<setAvatarDirect "casey2.png">>
<</if>>
<<elseif $intro isnot true>>
<<setAvatarDirect "casey.png">>
<</if>><<dialogue "" "You pick up the first-aid kit and slip it into your backpack." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Livingroom]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('medkit', 1);<</script>><<dialogue "Casey" "It’s Franklin… the janitor. He lives nearby, in the cabin by the lake. Something tells me he’s just as desperate as you are…" "talk">>
<<addDialogue "" "The spark of hope in the nurse’s eyes dies instantly. Her face twists in disgust, lips curling as if she just bit into something rotten." "description">>
<<addDialogue "Nurse" "Franklin? That filthy old lech? The one who reeks of rust and stares at anything that breathes?" "talk">>
<<addDialogue "" "She lets out a bitter, broken laugh that turns into a shudder." "description">>
<<addDialogue "Nurse" "God… of course. Of course it had to be that disgusting scrap-hoarding creep. Anyone but him." "talk">>
<<addDialogue "" "I guess she’s got a point…" "thoughts">>
<<addDialogue "" "All curiosity drains from her. She sinks back into the chair and turns her face to the wall..." "description">>
<<addDialogue "Nurse" "Get out. Please. Just go." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Bye|Livingroom]]">>
<<horizontalEnd>>
<<dialogue "Casey" "Yeah, I know someone. His name’s Bruno. He’s the security guard. Right now he’s downstairs, in the basement maintenance room. Big guy, strong, with a few days’ stubble… and honestly, he’s kind of a slob. But he’s alone. Completely alone." "talk">>
<<addDialogue "" "The nurse freezes for a second, breathing fast. Then her eyes light up with a wild, almost desperate spark. She bites her lower lip so hard it looks like it might bleed." "description">>
<<addDialogue "Nurse" "Bruno…" "talk">>
<<addDialogue "" "She jumps to her feet. Her legs are shaking, but from impatience. She runs her hands through her messy hair with quick and nervous movements." "description">>
<<addDialogue "Nurse" "Basement maintenance room? Perfect." "talk">>
<<addDialogue "" "She flings the door open and bolts down the hallway. The sound of her hurried footsteps fades into the darkness." "description">>
<<addDialogue "" "Maybe I should go take a look… Bruno’s probably busy right now." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Bye|Livingroom]]">>
<<horizontalEnd>>
<<set $NurseWithBruno = true>>
<<dialogue "" "You open the cell door and slip inside without a sound. The air is thick, heavy with heat and the sharp scent of sweat. In the back bunk, Bruno has the nurse pinned with her back against the wall, one of her legs hooked over his hip. He’s thrusting into her hard, each sharp slam making the wall shudder. Her head is thrown back, eyes half-closed, biting her lip to keep from screaming too loud; even so, rough, broken moans escape her every time he buries himself deep." "description">>
<<addDialogue "" "Damn… he really is busy right now." "thoughts">>
<<addDialogue "" "Neither of them has noticed you yet, standing there in the doorway, watching. The nurse’s eyes suddenly snap open. She finally sees you and gives you a breathless, open-mouthed smile while panting." "description">>
<<addDialogue "Casey" "Close… Ah…! the door… or join us." "talk">>
<<addDialogue "" "Bruno, for his part, is still completely focused, oblivious to your presence." "description">>
<<addDialogue "" "This is my chance. I can lock them in here and the maintenance room will be all mine." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Close the door|Cell07CloseDoor]]">>
<<horizontalEnd>>
<<set $NakedNurseLose = 2>>
<<unlockVideo 4 7>>
<<unlockVideo 4 8>>
<<unlockVideo 4 9>><<dialogue "" "You step into the cell. The door clangs shut behind you with a dry, final snap. From the shadows she steps forward—the same nurse. Her eyes ignite the moment she sees you." "description">>
<<addDialogue "Nurse" "I went down to the basement. Bruno was asleep… naked. He still smelled like sex. Like another woman. And you told me he hadn’t touched anyone in months!" "talk">>
<<addDialogue "" "Shit…" "thoughts">>
<<addDialogue "Casey" "Listen, I..." "talk">>
<<addDialogue "Nurse" "Talk. Now!" "talk">>
<<addDialogue "Casey" "It was me. A few hours ago. I slept with him and… I forgot to mention it. I didn’t think it was that big a deal." "talk">>
<<addDialogue "" "She freezes. Dead silence. Then her face twists: shock, betrayal, pure rage." "description">>
<<addDialogue "Nurse" "Not a big deal? I begged you, Casey. On my knees. And you sent me to smell him right after you finished with him." "talk">>
<<addDialogue "Casey" "It wasn’t on purpose, I just..." "talk">>
<<addDialogue "Nurse" "YOU HUMILIATED ME, YOU BITCH!" "talk">>
<<addDialogue "" "She takes a step forward, fists clenched white, breathing hard, ready to lunge." "description">>
<<addDialogue "Nurse" "I hate you! I fucking hate you!" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|NurseLMad]]">>
<<horizontalEnd>>
<<showNPC "nurse" "img/monsters/nurses/naked_nurse4.png" "Nurse">>
<<set $NakedNurseLose = 1>>
<<createAdvancedEvent "HealthAndVariable" 10 "<" "passage" "NakedNurseLose" true "health" "NakedNurseLose"
1>><<run startAdvancedBattle([
{
type: 'nakednurse',
hp: 120,
distance: 15,
randomDistance: true,
speed: "3-6",
minMovement: 3,
maxMovement: 6,
damage: 10,
DamageIgnore: {
'pistol': 0.1,
'rifle': 0.1,
'shotgun': 0.1,
'melee': 0.1,
'incendiary': 0.1,
'dragon_breath': 0.1,
'tracer': 0.1,
'9mm': 0.1,
'.45': 0.1,
'slugs': 0.1
}
}
], 'NurseWinLR2', true, 'NurseEscapeLR2', false)>>
<<if window.ClothingSystem.currentClothes === 'jacket'>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<elseif window.ClothingSystem.currentClothes === 'coat'>>
<<setAvatarDirect "caseycoatpistol.png">>
<<else>>
<<setAvatarDirect "caseycoatpistol.png">>
<</if>>
<<createAdvancedEvent "HealthAndVariable" 10 "<" "passage" "NakedNurseLose" true "health" "NakedNurseLose"
1>><<dialogue "" "The echo of the gunshot reverberates through the abandoned cell like a dry thunderclap. She falls on her back with her legs splayed open. You approach slowly. There, half-hidden between her thighs, her pussy fully exposed—you spot a small white package with a red cross: a medkit. " "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take medkit|MedkitLR2|?!canPickupMedkit]]">>
<<addDialogue "" "[[Let it|Cell07]]">>
<<horizontalEnd>>
<<if $intro is true>>
<<if $CaseyJacket is true && $CaseyCoat isnot true>>
<<setAvatarDirect "caseyjacket.png">>
<<elseif $CaseyJacket isnot true && $CaseyCoat is true>>
<<setAvatarDirect "caseycoat.png">>
<<else>>
<<setAvatarDirect "casey2.png">>
<</if>>
<<elseif $intro isnot true>>
<<setAvatarDirect "casey.png">>
<</if>>
<<set $NakedNurseLose = 2>>
<<dialogue "" "You escape from the naked nurse." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|IsolationCells3]]">>
<<horizontalEnd>>
<<if $intro is true>>
<<if $CaseyJacket is true && $CaseyCoat isnot true>>
<<setAvatarDirect "caseyjacket.png">>
<<elseif $CaseyJacket isnot true && $CaseyCoat is true>>
<<setAvatarDirect "caseycoat.png">>
<<else>>
<<setAvatarDirect "casey2.png">>
<</if>>
<<elseif $intro isnot true>>
<<setAvatarDirect "casey.png">>
<</if>>
<<set $NakedNurseLose = 2>><<dialogue "" "You pick up the first-aid kit and slip it into your backpack." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Livingroom]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('medkit', 1);<</script>><<dialogue "" "The first blow is a slap that spins your head; your ears ring. Before you can even raise your arms, she’s already on you: a knee to the stomach folds you in half, and the fists rain down like hammers—cheek, jaw, temple. You crash against the wall and slide to the floor. She straddles you, grabs your hair with both hands, and slams the back of your head against the concrete. White light explodes behind your eyes." "description">>
<<addDialogue "Nurse" "This is for making me feel like trash." "talk">>
<<addDialogue "" "Another punch splits your lip. Your mouth fills with blood. You try to cover yourself, but she’s faster, frenzied. One final backhand whips across your face, leaving your cheek burning and your vision blurred. She stands up, panting, knuckles red. She looks down at you for a second while you lie curled up on the floor, tasting iron." "description">>
<<addDialogue "Nurse" "Don’t you ever come near me again." "talk">>
<<addDialogue "" "She shakes out her hands, turns on her heel, and walks out. The cell door slams shut. You’re left alone—bruised, bleeding—listening to her footsteps fade down the hallway." "description">>
<<addDialogue "" "Fucking bitch…" "thoughts">>
<<addDialogue "Casey" "Shit!" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|IsolationCells3]]">>
<<horizontalEnd>>
<<set $NakedNurseLose = 2>>
<<if $intro is true>>
<<if $CaseyJacket is true && $CaseyCoat isnot true>>
<<setAvatarDirect "caseyjacket.png">>
<<elseif $CaseyJacket isnot true && $CaseyCoat is true>>
<<setAvatarDirect "caseycoat.png">>
<<else>>
<<setAvatarDirect "casey2.png">>
<</if>>
<<elseif $intro isnot true>>
<<setAvatarDirect "casey.png">>
<</if>>
<<script>>
window.HealthSanitySystem.addHealth(10)
<</script>>
<<script>>
window.decreaseSanity(10);
<</script>><<dialogue "" "You quietly shut the door and slide the original bolt back into place from the outside. A faint metallic click echoes in the deserted hallway. Inside, the fierce rhythm continues: the hard slams against the wall, the nurse’s ragged gasps, Bruno’s low growls." "description">>
<<addDialogue "Casey" "Perfect!" "talk">>
<<addDialogue "" "Now they’ve got all the privacy in the world… and the maintenance room is mine for a good long while." "thoughts">>
<<addDialogue "" "You grin to yourself as you pocket the key and slip away down the silent corridor. The maintenance room is free." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|IsolationCells3]]">>
<<horizontalEnd>>
<<set $ClosedDoor07 = true>>
<<dialogue "" "You approach the steel rack; the cold sinks into your bones and makes your fingers tremble slightly. You reach out and grab the only intact vial. The glass is so frigid it burns." "description">>
<<addDialogue "" "What the hell is this?" "thoughts">>
<<addDialogue "" "You turn it between your fingers for a second; the half-dissolved label is barely legible, but it's enough." "description">>
<<addDialogue "Casey" "Project Mother… Antiserum." "talk">>
<<addDialogue "" "Jesus, Casey, did you just steal a fucking bioweapon?" "thoughts">>
<<addDialogue "" "You quickly shove it into the side pocket of your backpack." "description">>
<<addDialogue "" "Maybe later I'll figure out what the hell this thing even does. Shit, maybe I should just ditch this crap and focus on the case…" "thoughts">>
<<addDialogue "Casey" "Never liked lab bullshit anyway." "talk">>
<<addDialogue "" "You slam the cryo chamber door shut with a sharp bang that echoes like a verdict." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|LabA]]">>
<<horizontalEnd>>
<<set $LabSerum = true>>
<<set $BlueSerum += 1>>
<<script>>
const itemKey = 'projectMotherAntiserum';
const itemName = 'Antiserum Vial';
const itemDescription = 'A dark glass vial sealed with a red rubber stopper. The half-dissolved label reads:\n\n«PROJECT MOTHER – ANTISERUM»\n\nThe intense electric-blue liquid glows faintly on its own and tiny bubbles slowly rise and fall.';
const itemValue = 0;
const imagePath = `img/items/antiserum.png`; // ← change this path if your image is somewhere else
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "quest",
image: imagePath,
stackable: false,
maxStack: 1,
value: itemValue,
weight: 0.2,
isSellable: false,
unique: true
};
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: 0,
stock: 0,
img: imagePath
};
// Adding item to inventory
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired`);
}
window.ShopSystem.populateSellItems();
<</script>><<script>>
const itemKey = 'ellen_heartlocket';
const itemName = 'Broken Heart Locket';
const itemDescription = `A small, dented silver heart locket with a forcibly bent hinge. Inside is a tiny, faded photograph of a red-haired woman smiling gently—Ellen’s mother. The thin chain is snapped clean, as if it was violently ripped from her neck long ago.`;
const itemValue = 0;
const itemWeight = 0.05;
const imagePath = `img/items/special/ellen_heartlocket.png`;
// Añadir al base de datos de ítems
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "special",
image: imagePath,
stackable: false,
maxStack: 1,
value: itemValue,
weight: itemWeight,
trustEffect: {
character: "Ellen",
amount: 50, // Biggest single trust jump in the game
consumeOnUse: false // Returned forever; she never takes it off again
},
isSellable: false,
unique: true
};
// Precio de venta (0 porque no se vende)
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: 0,
stock: 0,
img: imagePath
};
// Opcional: añadir automáticamente al inventario del jugador al cargar este passage
// (descomenta las siguientes líneas si quieres que se añada directamente)
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired`);
}
window.ShopSystem.populateSellItems();
<</script>>
<<script>>
const itemKey = 'cookiebox';
const itemName = 'Rusty Cookie Tin';
const itemDescription = 'A battered tin box containing a handful of homemade cookies that have stayed impossibly fresh. Their warm, sugary scent rises above the surrounding rot and decay. Restore 50 heal';
const itemValue = 150;
const imagePath = `img/items/special/cookiebox.png`;
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "special",
image: imagePath,
stackable: false,
maxStack: 1,
value: itemValue,
weight: 0.5,
healthRestore: 50,
trustEffect: {
character: "Ellen",
amount: 15,
consumeOnUse: true
},
isSellable: true,
unique: true
};
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: 0,
stock: 0,
img: imagePath
};
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired`);
}
window.ShopSystem.populateSellItems();
<</script>>
<<script>>
const itemKey = 'cookieboxsp';
const itemName = 'Old Cookie Tin';
const itemDescription = 'A battered tin box containing a handful of homemade cookies that have stayed impossibly fresh. Their warm, sugary scent rises above the surrounding rot and decay. Restore 80 heal';
const itemValue = 200;
const imagePath = `img/items/special/cookieboxsp.png`;
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "special",
image: imagePath,
stackable: false,
maxStack: 1,
value: itemValue,
weight: 0.5,
healthRestore: 80,
trustEffect: {
character: "Ellen",
amount: 20,
consumeOnUse: true
},
isSellable: true
};
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.5), // 100 por defecto, o puedes poner el valor exacto que quieras
stock: 0,
img: imagePath
};
// Añadir al inventario (exactamente igual que los otros ítems especiales)
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired`);
}
window.ShopSystem.populateSellItems();
<</script>>
<<script>>
const itemKey = 'carvedheart';
const itemName = 'Carved Wooden Heart';
const itemDescription = 'A small wooden heart crudely carved with a knife. Restore 25 sanity.';
const itemValue = 9;
const imagePath = `img/items/special/carvedheart.png`;
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "special",
image: imagePath,
stackable: false,
maxStack: 1,
value: itemValue,
weight: 0.25,
sanityRestore: 25,
trustEffect: {
character: "Ellen",
amount: 13,
consumeOnUse: true
},
isSellable: true,
unique: true
};
// Usamos la key en vez del nombre (así nunca sobrescribe nada)
window.ShopSystem.sellPrices[itemKey] = {
buy: itemValue,
sell: 0,
stock: 0,
img: imagePath
};
// Añadir al inventario (exactamente igual que los que ya te funcionan)
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired`);
}
window.ShopSystem.populateSellItems();
<</script>><<if $incubationCheck is true>>
<<dialogue "" "The incubator stands untouched amid the surrounding chaos: shattered glass, overturned tables, blood-smeared walls… yet this unit is pristine. You lean in. Through the fogged pane you see nothing inside—just a thin, milky film coating the walls and floor. The thick rubber seal around the lid is visibly warped and pushed outward, evidence of intense pressure that once built up inside." "description">>
<<addImage "img/events/incubator.png">>
<<else>>
<<dialogue "" "You approach the intact incubator and run your hand over its cold, smooth surface. The glass remains undamaged, without cracks or visible residue on the outside. The lid is hermetically sealed, but as you lean in and peer through the fogged pane, you confirm that the interior is empty. Only a faint, cloudy film clings to the inner walls and floor, as if something had been hastily extracted moments before your arrival." "description">>
<<addImage "img/events/incubator.png">>
<<addDialogue "" "This doesn't make sense. I'm in a psychiatric hospital, not a genetic research lab. This has nothing to do with any kind of therapy." "thoughts">>
<<addDialogue "Casey" "What the hell were they incubating in these things?" "talk">>
<<addDialogue "" "Is this where they were keeping those little abominations?" "thoughts">>
<<addDialogue "" "You examine the edge of the lid. There are no signs of forced damage, but the thick rubber gasket is subtly warped and pushed outward in places, as if it had briefly withstood excessive internal pressure before the seal was finally released." "description">>
<<addDialogue "" "There's no place for incubators like this in a psychiatric hospital. This was a secret lab. And whatever was gestating inside wasn’t a patient." "thoughts">>
<<addDialogue "Casey" "Shit… What the hell did I get myself into?" "talk">>
<<addDialogue "" "The empty incubator stands out starkly amid the chaos that pervades the rest of the room. While everything around it has been smashed and desecrated, this unit remains untouched, as if it had been deliberately preserved to conceal what is missing." "description">>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Incubation room]]" "center">>
<<set $incubationCheck = true>><<if $BedCheck is true>>
<<dialogue "" "You examine the stainless steel tables more closely. Each one is equipped with articulated supports and robust restraints designed to immobilize limbs in fixed positions. Several of the supports are locked in partially extended positions, as if their use was abruptly interrupted." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Back|LabA2]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "You examine the stainless steel tables more closely. Each one is equipped with articulated supports and robust restraints designed to immobilize limbs in fixed positions. Several of the supports are locked in partially extended positions, as if their use was abruptly interrupted." "description">>
<<addDialogue "Casey" "What the hell is this? These tables have supports for holding someone’s legs completely spread apart." "talk">>
<<addDialogue "" "You notice the wide, reinforced restraining straps and the drainage channels that run along the edges of the tables. The leg supports on several of them are deployed, locked in a fully open position." "description">>
<<addDialogue "Casey" "Restraints make sense in a psychiatric hospital for violent patients, but these supports… why would you need to fix someone’s legs in that kind of position?" "talk">>
<<addDialogue "" "This isn’t for managing agitation or electrotherapy." "thoughts">>
<<addDialogue "" "Some of the straps show clear signs of wear: deep scoring and partial tears in the padding. The drainage channels contain hardened remnants of viscous material, caught along the edges." "description">>
<<addDialogue "Casey" "These aren’t standard examination or restraint tables. The drainage channels suggest they were expecting a large volume of fluid." "talk">>
<<addDialogue "" "Births" "thoughts">>
<<addDialogue "Casey" "Bingo… Are they using the kidnapped girls to have babies? It’s plausible… but why? And for what purpose? It doesn’t make any sense." "talk">>
<<addDialogue "" "If they’re forcing women to give birth here, it’s not to raise children. No one sets up a place like this for something so… ordinary. These tables are here for something else. Maybe it has to do with those monsters" "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|LabA2]]">>
<<horizontalEnd>>
<</if>>
<<set $BedCheck = true>><<dialogue "" "You approach the table and pick up the handwritten note. It is a page torn from a laboratory notebook, written in precise handwriting." "description">>
<<addDialogue "Casey" "This might explain what they were doing here." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Labtables]]">>
<<horizontalEnd>>
<<set $Labnote = true>>
<<script>>
window.addDocumentWithNotification(
"karlsen_note_day25",
"Diary Note",
"Torn and stained note titled 'Day 25 of the incubation protocol' by Dr. Karlsen.",
"",
"close_photo",
"📋",
{
imagePath: "img/documents/karlsen_note_day25.png",
location: "Found inside a room at the Charles Francis Psychiatric Hospital",
photographer: "Dr. Karlsen",
frontDescription: `A torn note from Dr. Karlsen's diary. It appears to be a journal entry or research log related to the experiments conducted within the hospital.`
}
);
<</script>>
<<script>>
playSoundDirect('page.mp3');
<</script>>
<<dialogue "" "You pick up the photograph from the table." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Labtables]]">>
<<horizontalEnd>>
<<set $Labphoto = true>>
<<script>>
playSoundDirect('page.mp3');
<</script>>
<<script>>
window.addDocumentWithNotification(
"laboratory_group_photo",
"Old Photograph",
"A photograph depicting a group of researchers gathered in a laboratory.",
"",
"photo",
"📷",
{
imagePath: "img/documents/laboratory_group_photo.png",
location: "Found in the laboratory in Charles Frances Hospital.",
photographer: "Photographer unknown",
frontDescription: ` A group of researchers listens to a central male figure speaking in a laboratory with white tiled walls. They are gathered in front of a large observation window that separates the main room from a sterile chamber.`
}
);
<</script>><<dialogue "" "In a locked compartment, you find an old metal hook, long and sharp, with a curve perfect for snagging and tearing—an abandoned tool, but intimidating." "description">>
<<addDialogue "Casey" "I don’t even want to imagine what this was used for… But as a weapon… it hooks, pierces, and tears. Brutal and effective." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Labtables]]">>
<<horizontalEnd>>
<<set $metalhook = true>>
<<script>>
const itemKey = 'oldhook';
const itemName = 'Old Hook';
const itemDescription = 'A surgical hook with a wide, serrated tip, designed to pierce and separate tissue; long and sharp, with a curved end perfect for snagging and tearing—an abandoned instrument.';
const itemValue = 120;
const weaponDamage = 19;
const imagePath = 'img/items/weapons/oldhook.png';
// Add to Item Database
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "tool", // Melee weapons use "tool" category
type: "weapon", // Must be "weapon"
weaponType: "melee", // Critical: defines as melee weapon
damage: weaponDamage, // Base damage
image: imagePath,
stackable: false,
maxStack: 1,
value: itemValue,
weight: 1.2, // Slightly heavier than the knife
isSellable: true
};
// Add to Shop System
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 1,
img: imagePath
};
// Add to Inventory with Notification
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
// Refresh Shop UI
window.ShopSystem.populateSellItems();
<</script>>
<<dialogue "" "A rusted metal sign hangs half-detached from the wall, still barely readable: “FLOOR 1” in faded green letters. Paint peels around it in curled flakes, and the air reeks of old piss and thick mold." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go down the stairs|HospitalStairsPP4]]">>
<<addDialogue"" "[[Exit to this floor|HallwayF1]]">>
<<addDialogue "" "[[Go up the stairs|HospitalStairsPP5]]">>
<<horizontalEnd>><<dialogue "" "The hallway is so narrow your shoulders nearly brush both walls. The green-and-cream linoleum is curled up at the edges, crackling and sinking under your boots through layers of dust and chunks of fallen ceiling plaster. The beige paint peels away in long strips, exposing rust stains that run down like burst veins." "description">>
<<if $DoorF1 isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check door|F1door]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<if $DoorF1 is true>>
<<addDialogue "" "[[Second floor|FHallway]]">>
<</if>>
<<addDialogue"" "[[Stairs|HospitalStairsF1]]">>
<<horizontalEnd>><<dialogue "" "The hallway is so narrow your shoulders nearly brush both walls. The green-and-cream linoleum is curled up at the edges, crackling and sinking under your boots through layers of dust and chunks of fallen ceiling plaster. The beige paint peels away in long strips, exposing rust stains that run down like burst veins." "description">>
<<horizontalStart>>
<<addDialogue"" "[[Stairs|HallwayF2]]">>
<<horizontalEnd>><<dialogue "" "You reach the metal door at the end of the hallway. The knob spins loosely in your hand, but the door doesn’t budge; something heavy is wedged against it from the other side. The steel feels ice-cold and slick with damp. A thick stench of mold and rotting meat seeps out from under the gap." "description">>
<<horizontalStart>>
<<addDialogue"" "[[Back|HallwayF1]]">>
<<horizontalEnd>><<dialogue "" "You head down to the ground floor. The concrete steps are slick and cold, each one cracking with a hollow pop that echoes too long. The rusted handrail shivers under your fingers like someone just let go of it." "description">>
<<horizontalStart>>
<<addDialogue"" "[[Continue|HospitalStairsPP]]">>
<<horizontalEnd>><<dialogue "" "You head up to the first floor. The dust is so fine it kicks up around your ankles with every step and just hangs there, slow to drop. Part of the handrail is caked in rust that flakes off in sharp little chips when you touch it, leaving a gritty, burning itch on your fingers." "description">>
<<horizontalStart>>
<<addDialogue"" "[[Continue|HospitalStairsF1]]">>
<<horizontalEnd>><<dialogue "" "You approach the APDM-02 “Mnemosyne” again. The steel tower stands cold and lifeless, shrouded in shadows and dust. Three armored-glass tanks sit empty, their cracked rubber seals and rusted clamps looking like hungry mouths waiting for something to feed them. The control panel is pitch black, levers stiff, not a single light or hum." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" "There you are again, sweetheart… just as dead as the first time." "talk">>
<<addDialogue "" "Without power, you’re still a fancy-ass paperweight." "thoughts">>
<<default>>
<<addDialogue "" "Once I get those vials, this thing’s gonna decide who lives… or who dies screaming. And I still don’t have a damn clue what the right mix is.." "thoughts">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Back|LabA]]">>
<<horizontalEnd>>
<<if $CheckMachine isnot true>>
<<goto "CheckMachine">>
<</if>><<dialogue "" "You shove aside the fallen metal screen with a grunt and step over the crunching glass shards under your boots. Half-buried in dust and dried brown splatter, you spot a massive cylindrical steel tower: three armored-glass tanks completely empty, a tangle of thick hoses, and a dead control panel. You wipe the grime off the identification plate with your sleeve. The letters slowly emerge:" "description">>
<<addDialogue "" "AUTOMATED PROPORTIONAL DRUG MIXER" "description">>
<<addDialogue "" "APDM-02 Project 'MNEMOSYNE'" "description">>
<<addDialogue "" "Aseptic preparation of bio-dimensional hazard parenterals" "description">>
<<addDialogue "" "Authorized personnel only" "description">>
<<addDialogue "Casey" "Proportional… automated… drug mixer. What the hell is this? Some kind of custom-injection machine?" "talk">>
<<addDialogue "" "Your eyes lock on the three empty tanks. Each one is a perfect cylindrical slot with rubber seals and locking clamps at the top—clearly built to hold large vials." "description">>
<<addDialogue "Casey" "Three giant slots just begging for vials… Drop three in, hit the levers, and it mixes you a shot. Simple as that." "talk">>
<<addDialogue "" "Right now the whole thing’s dead and dark. Without power this beast couldn’t even warm a cup of coffee, let alone cook whatever nightmare juice it’s meant for." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Back|LabA]]">>
<<horizontalEnd>>
<<set $CheckMachine = true>><<dialogue "" "You pocket the small fuse." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Labtables]]">>
<<horizontalEnd>>
<<set $LabFuse = true>>
<<script>>
const itemKey = 'labFuse';
const itemName = 'Fuse';
const itemDescription = 'A small cylindrical glass fuse with a thin metal filament inside. The markings on the ends read "15A – 250V". Still intact… for now.';
const itemValue = 5;
const imagePath = `img/items/special/fuse.png`; // cambia la ruta si tu imagen está en otro sitio
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "key", // o "quest" si prefieres
image: imagePath,
stackable: true, // puedes apilar varios fusibles si quieres
maxStack: 5,
value: itemValue,
weight: 0.01,
isSellable: true,
unique: false
};
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.6),
stock: 0,
img: imagePath
};
// Añadir el fusible al inventario
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} added to inventory`);
}
window.ShopSystem.populateSellItems();
<</script>><<if $monitorCheck is true>>
<<dialogue "" "You glance at the monitors; they remain off." "description">>
<<else>>
<<dialogue "" "You stop one step away from the monitors. The green emergency light slides across the dark screens, but they show no signs of life." "description">>
<<addDialogue "Casey" "Nothing…" "talk">>
<<addDialogue "" "Looks like the emergency power isn’t enough… They need the main grid. Without it, they’re blind." "thoughts">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Check control panel|Spanel]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|SecurityRoom]]" "center">>
<<set $monitorCheck = true>>
<<dialogue "" "You crouch in front of the control panel just below the monitors. The buttons are dark, lifeless. The surface feels cold under your fingertips, coated in a thin layer of dust that smears when you drag your fingers across it. A single tiny red LED blinks slowly, almost half-dead, the only proof anything in here is still breathing on emergency power." "description">>
<<addDialogue "" "This thing runs everything… but without the main grid it’s useless." "thoughts">>
<<addDialogue "" "Out of pure frustration you jab one of the buttons. Not even a click. The panel is just as dead as the screens hanging above it." "description">>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|SecurityRoom]]" "center">>
<<if $SRcabinet is true>>
<<dialogue "" "You walk over to the metal cabinet set into the opposite wall. The door is locked tight: a heavy-duty cylindrical lock with a reinforced deadbolt." "description">>
<<adDialogue "Casey" "I need a lockpick…" "description">>
<<addImage "img/events/cabinetsr.png">>
<<else>>
<<dialogue "" "You step up to the metal cabinet. The door hangs slightly ajar, the reinforced deadbolt retracted. It’s open." "description">>
<</if>>
<<if $SRcabinet is true>>
<<addDialogue "" "[[Check cabinet|SRcabinet2]]">>
<<else>>
<<addDialogue "" "[[Pick cabinet's lock|SRcabinetLock]]">>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|SecurityRoom]]" "center">>
<<if $SRpc is true>>
<<dialogue "" "You step up to the metal desk, littered with scattered papers and an empty mug crusted with dried coffee grounds. The desktop computer is on." "description">>
<<else>>
<<dialogue "" "You step up to the metal desk, littered with scattered papers and an empty mug crusted with dried coffee grounds. The desktop computer is off, its screen completely black. To one side, a metal drawer sits slightly ajar, locked with a simple little keyhole." "description">>
<</if>>
<<horizontalStart>>
<<if $SRpc is true>>
<<addDialogue "" "[[Turn on computer|SRpc]]">>
<<else>>
<<addDialogue "" "<div class='main-menu-btn' id='save-button'>Save/Load</div>">>
<</if>>
<<addDialogue "" "[[Check drawer|SRdrawer]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|SecurityRoom]]" "center">>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>><<dialogue "" "You climb the broken steps and the air drops colder. The mildew smell thickens, swallowing what little light remains." "description">>
<<horizontalStart>>
<<addDialogue"" "[[Continue|HospitalStairsF2]]">>
<<horizontalEnd>><<dialogue "" "A crooked sign sways in the gloom: “FLOOR 2,” cracked green letters, one corner torn off. Wallpaper dangles in damp shreds and the air tastes sour with mildew and dried blood." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go down the stairs|HospitalStairsPP6]]">>
<<addDialogue"" "[[Exit to this floor|HallwayF2]]">>
<<addDialogue "" "[[Go up the stairs|HospitalStairsPP7]]">>
<<horizontalEnd>><<dialogue "" "You descend carefully; the warm, wet stench of old piss wraps around you again, as if the building remembers you." "description">>
<<horizontalStart>>
<<addDialogue"" "[[Continue|HospitalStairsF1]]">>
<<horizontalEnd>><<dialogue "" "You keep climbing. The staircase groans and sheds gray dust; the air grows heavier, laced with damp rot that stings the throat." "description">>
<<horizontalStart>>
<<addDialogue"" "[[Continue|HospitalStairsF3]]">>
<<horizontalEnd>><<dialogue "" "The hallway stretches long and low; the ceiling almost brushes your hair. The dark red linoleum bulges in lumps that crack and squelch with a faint wet sensation beneath your boots. The sickly green walls are webbed with thin cracks that ooze reddish droplets." "description">>
<<if $DoorF3 isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check door|F2door]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<if $DoorF3 is true>>
<<addDialogue "" "[[Third floor|SFHallway]]">>
<</if>>
<<addDialogue"" "[[Stairs|HospitalStairsF2]]">>
<<horizontalEnd>><<dialogue "" "A blistered plate is bolted to the wall: “FLOOR 3,” paint bubbling and swollen. Chunks of plaster litter the floor, exposing rotten lath, and the stench of decades-old wet cigarette butts fills your lungs." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go down the stairs|HospitalStairsPP8]]">>
<<addDialogue"" "[[Exit to this floor|HallwayF3]]">>
<<addDialogue "" "[[Go up the stairs|HospitalStairsPP9]]">>
<<horizontalEnd>><<dialogue "" "You push upward. The steps sag and creak louder, shedding flakes of plaster. The air turns acrid, burnt plastic and stagnant water thick enough to taste." "description">>
<<horizontalStart>>
<<addDialogue"" "[[Continue|HospitalStairsF4]]">>
<<horizontalEnd>><<dialogue "" "You descend. The air lightens slightly, but the metallic tang and clinging mold stay on your skin." "description">>
<<horizontalStart>>
<<addDialogue"" "[[Continue|HospitalStairsF2]]">>
<<horizontalEnd>><<dialogue "" "The hallway is wide and bare. The floor of broken white tiles is covered by a thick layer of black dust and ash that rises in clouds and tastes like stale smoke. The walls are pure scratched concrete, with deep grooves and soot stains that climb up to the sagging ceiling." "description">>
<<if $DoorF3 isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check door|F3door]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<if $DoorF3 is true>>
<<addDialogue "" "[[Third floor|TFHallway]]">>
<</if>>
<<addDialogue"" "[[Stairs|HospitalStairsF3]]">>
<<horizontalEnd>><<dialogue "" "rgrg" "description">>
<<horizontalStart>>
<<addDialogue"" "[[Stairs|HallwayF3]]">>
<<horizontalEnd>><<dialogue "" "You reach the door at the end of the hallway. " "description">>
<<horizontalStart>>
<<addDialogue"" "[[Back|HallwayF3]]">>
<<horizontalEnd>><<dialogue "" "The corridor is wide and empty. The broken white tiles vanish beneath a thick layer of black dust and ash that swirls with every step. The bare concrete walls are scarred with deep gouges." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go down the stairs|HospitalStairsPP10]]">>
<<addDialogue"" "[[Exit to this floor|HallwayF4]]">>
<<addDialogue "" "[[Go up the stairs|HospitalStairsPP11]]">>
<<horizontalEnd>><<dialogue "" "You descend. The choking smell of scorched wiring eases a fraction, replaced by the familiar sour rot of cigarette ghosts and wet plaster." "description">>
<<horizontalStart>>
<<addDialogue"" "[[Continue|HospitalStairsF3]]">>
<<horizontalEnd>><<dialogue "" "A low hum starts up immediately. The fans spin to life, the hard drive clicks once, and the screen flickers from black to the familiar corporate boot logo. A soft green LED glows steady under the desk; the UPS still has juice. After a few seconds the login screen appears, cursor blinking patiently" "description">>
<<addImage "img/events/desksr.png">>
<<horizontalStart>>
<<addDialogue "" "<div class='main-menu-btn' id='save-button'>Save/Load</div>">>
<<horizontalEnd>>
<<addDialoguePos "" "[[Back|SecurityRoom]]" "center">>
<<set $SRpc = true>>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<if $SRAmmo is true>>
<<dialogue "" "You yank the drawer. The flimsy lock snaps with a rusty pop. Inside, just loose pens and an old pack of gum. Nothing else." "description">>
<<else>>
<<dialogue "" "You yank the drawer. The flimsy lock snaps with a rusty pop.
Inside, among loose pens and an old pack of gum, sits a small, heavy cardboard box. 9 mm rounds." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take ammo|SRammo|?!canPickupPistolAmmo]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|SecurityRoom]]" "center">><<dialogue "" "You take the ammo." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|SecurityRoom]]">>
<<horizontalEnd>>
<<script>>
addAmmo('9mm', 30)
<</script>>
<<set $SRAmmo = true>> <<script>>
setTimeout(() => {
const lockpickCount = window.checkLockpicks ? window.checkLockpicks() : 0;
if (lockpickCount > 0) {
Engine.play('SrcabinetLockpickAttempt');
} else {
Engine.play('SRNoLockpicks');
}
}, 500);
<</script>><<dialogue "Casey" "I don't have any lockpicks" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Back|SecurityRoom]]">>
<<horizontalEnd>><<dialogue "" "You start to pick the lock." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go back|SecurityRoom]]">>
<<horizontalEnd>>
<<script>>
window.LockBreakSystem.startGame(2,
function() {
window.SystemNotificationSystem.success('🔓 Door unlocked!');
setTimeout(() => Engine.play('SRcabinetopen'), 1500);
},
function() {
window.SystemNotificationSystem.error('🔒 The lockpick broke!');
setTimeout(() => Engine.play('SecurityRoom'), 1500);
}
);
<</script>><<dialogue "" "The pick turns with a sharp, satisfying click. The deadbolt finally gives. You push the door; it swings open without a fight, revealing the dark interior of the cabinet." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check cabinet|SRcabinet2]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Back|SecurityRoom]]">>
<<horizontalEnd>>
<<set $SRcabinetopen = true>><<if $SRinventoryExpanded is true>>
<<dialogue "" "You pull the cabinet door all the way open. Its Empty. A few torn evidence bags, a broken handcuff, and some dust bunnies rolling across the metal floor. Nothing useful left." "description">>
<<else>>
<<dialogue "" "You pull the cabinet door all the way open. Inside, there's a black tactical waist pack in good condition hanging from a hook." "description">>
<<addImage "img/items/special/waistpack.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take waist pack|SRwaistpack]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|SecurityRoom]]" "center">><<dialogue "" "You grab the waist pack and fasten it around your waist. Your inventory capacity increased." "description">>
<<addDialogue "Casey" "This'll work. Extra space is always good." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|SecurityRoom]]" "center">>
<<horizontalEnd>>
<<set $SRinventoryExpanded = true>>
<<script>>
window.gameState.inventory.main[5] = null;
<</script>><<dialogue "" "The final steps groan like they’re about to snap. The air thickens with suspended dust and a metallic scrape in your throat." "description">>
<<horizontalStart>>
<<addDialogue"" "[[Continue|HospitalStairsF5]]">>
<<horizontalEnd>><<dialogue "" "The sign dangles upside-down from a single loose screw: “FLOOR 4,” letters half scraped away. Black streaks ooze down the walls, paint curling like scorched paper, and the air carries burnt plastic and stagnant rot." "description">>
<<if $DoorF4 isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check door|F4door]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<if $DoorF4 is true>>
<<addDialogue "" "[[Third floor|FFHallway]]">>
<</if>>
<<addDialogue"" "[[Stairs|HospitalStairsF4]]">>
<<horizontalEnd>><<dialogue "" "You reach the door at the end of the hallway. Its blocked from the other side." "description">>
<<horizontalStart>>
<<addDialogue"" "[[Back|HallwayF4]]">>
<<horizontalEnd>><<dialogue "" "rgrg" "description">>
<<horizontalStart>>
<<addDialogue"" "[[Stairs|HallwayF4]]">>
<<horizontalEnd>><<dialogue "" "You've reached what seems to be the top floor. The stairs end abruptly against a bare concrete wall. You can't go any higher. The air here is stale, smelling of old chlorine and something sweet slowly rotting." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go down the stairs|HospitalStairsPP12]]">>
<<addDialogue"" "[[Exit to this floor|HallwayF5]]">>
<<horizontalEnd>><<dialogue "" "You back away from the collapse and start descending. The stairwell yawns beneath you like a bottomless black throat; the faint light from above dies instantly, leaving only a pit of absolute darkness that swallows the steps one by one." "description">>
<<horizontalStart>>
<<addDialogue"" "[[Continue|HospitalStairsF4]]">>
<<horizontalEnd>><<dialogue "" "You push the door, but something heavy is wedged against it from the other side. " "description">>
<<horizontalStart>>
<<addDialogue"" "[[Back|HallwayF2]]">>
<<horizontalEnd>><<dialogue "" "gb" "description">>
<<horizontalStart>>
<<addDialogue"" "[[Stairs|HallwayF1]]">>
<<horizontalEnd>><<dialogue "" "The laboratory door is a solid steel plate, no handle, no window, painted a dirty institutional gray. On the right, at chest height, an old, yellowed magnetic card reader juts out; the slot is filled with dust and the little red light flickers weakly. " "description">>
<<addDialogue "Casey" "Of course, naturally… Locked up tight." "talk">>
<<addDialogue "" "Without the damn card, there's no way in hell we're getting in." "thoughts">>
<<if $labkey is true>>
<<horizontalStart>>
<<addDialogue "" "[[Use magnetic card|LabOpen]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|LabCorridorA2]]" "center">><<dialogue "" "You slide the card through the slot. The reader emits a rusty beep, the little red light wavers for a second and turns green with a dry click. A low hum runs through the door; the internal bolts withdraw with metallic thuds that echo inside the empty hallway. The steel plate opens inward on its own, slow and heavy, letting out a blast of cold, sterile air that smells terribly." "description">>
<<addDialogue "Casey" "Ugh... Smells like... Ugh... I'd rather not know." "talk">>
<<addDialogue "" "After you, Casey... Let's see what they're hiding in this place." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|LabA]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|LabCorridorA2]]" "center">>
<<set $LabDoorOpen = true>><<dialogue "Casey" "Time to stop scandalizing the furniture and find something to wear." "talk">>
<<addDialogue "" "With a sigh, you put on your underwear and then slip into a fitted black t-shirt that feels comfortable and versatile. You grab a pair of dark jeans—durable and practical—and lace up your boots firmly, preparing yourself for whatever lies ahead. You approach the wardrobe and open it, examining the clothing options in front of you. Your gaze settles on two items: a sleek, shiny new black leather jacket with a modern and bold look, and a light brown trench coat, worn by time but familiar, like an old friend that has always been there during the toughest moments." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Black jacket|blackjacketIntro2]]">>
<<addDialogue "" "[[Trench coat|trenchcoatIntro2]]">>
<<horizontalEnd>>
<<setAvatarDirect "casey2.png">>
<<set $Naked = false>><<dialogue "" "You reach for the black leather jacket you recently bought and slip it over your shoulders. The smooth leather feels cool and firm against your skin, settling into place with a reassuring weight. You leave the asymmetrical zipper undone, the sharp collar and metal buttons giving the jacket its bold, unmistakable attitude. Steadying yourself, you adjust the lapels and take a moment to look in the mirror—preparing for whatever comes next." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Put on the trench coat|trenchcoatIntro2]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Get moving|SkipIntro2]]" "center">>
<<setAvatarDirect "caseyjacket.png">>
<<set $CaseyCoat = false>>
<<set $CaseyJacket = true>>
<<set $Naked = false>>
<<script>>
window.ClothingSystem.setClothes('jacket');
<</script>>
<<dialogue "" "With quiet resolve, you reach for the light brown trench coat and slip it on. The worn fabric rests against your shoulders with a familiar, almost comforting weight. You leave the buttons undone, the coat draping loosely around you like an old, reliable companion. Steadying yourself, you adjust the collar and take a moment to look in the mirror—preparing for whatever comes next." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Put on the jacket|blackjacketIntro2]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Get moving|SkipIntro2]]" "center">>
<<setAvatarDirect "caseycoat.png">>
<<set $CaseyCoat = true>>
<<set $CaseyJacket = false>>
<<script>>
window.ClothingSystem.setClothes('coat');
<</script>>
<<set $introcase = 1>>
<<set $MoneyElection = 1>>
<<set $InvestigatorRoad -= 1>>
<<set $Corruption += 1>>
<<addMoney 1000 "Added from the Mayor">>
<<script>>
window.addItemFromDatabase('pills', 5);
<</script>><<dialogue "" "After an urgent call from the mayor, you took the case—a series of kidnappings that has the city on edge. The latest leads have brought you here: the old Charles Francis Psychiatric Hospital, abandoned for decades... or so everyone believed. You pack up the essentials, sling your bag over your shoulder, and head out." "description">>
<<addDialogue "" "As you leave your apartment, you run into Gabriela Rodriguez, your old colleague. You talk briefly while she notices your rush and asks questions about where you're going and what kind of work has you so busy. You try to dodge her questions with vague answers, but you let slip that the mayor called you. She seems intrigued by this information, but you don't give her time for more questions. You quickly make your excuses and leave without telling her anything about the case or your destination, leaving her questions unanswered as you make your way toward your objective." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|introllegada1]]">>
<<horizontalEnd>>
<<addItem "battery" 10>>
<<set $introcase = 1>>
<<set $introbatteries = true>>
<<set $introgun = true>>
<<script>>
window.addItemFromDatabase('pistol', 1);
window.addItemFromDatabase('pistol_ammo', 50);
window.addItemFromDatabase('medkit', 1);
window.addItemFromDatabase('bandages', 3);
window.addItemFromDatabase('pills', 5);
<</script>>
<<set $intromedkit = true>>
<<script>>
window.gameState.showLanternRow = true;
const lanternRowEl = document.getElementById('lantern-row');
if (lanternRowEl) {
lanternRowEl.style.visibility = 'visible';
lanternRowEl.style.display = 'flex';
lanternRowEl.classList.remove('slide-hidden');
console.log('Removed slide-hidden class and set visible');
} else {
console.log('ERROR: lantern-row element not found!');
}
<</script>>
<<enableMenu>>
<<script>>
completeQuestStage("departure");
<</script>>
<<if $FlashlightTutorial isnot true>>
<<set $FlashlightTutorial = true>>
<div id="flashlightTutorialModal" class="modal">
<div class="modal-content">
<span class="close-button" onclick="document.getElementById('flashlightTutorialModal').style.display='none'">×</span>
<h2>Flashlight Tutorial</h2>
<p><strong>Goal:</strong> Use the flashlight to improve accuracy in dark areas and discover hidden objects.</p>
<div class="modal-section">
<div class="modal-column">
<strong>Controls:</strong>
<ul>
<li>Click on the flashlight icon in the player menu on the left side of the screen to illuminate dark areas in the game.</li>
<li>The flashlight has limited battery life. You will need batteries to recharge it.</li>
</ul>
</div>
<div class="modal-column">
<strong>Additional Tips:</strong>
<ul>
<li>There are three types of batteries: Cheap, Normal, and Duracell. Each battery type has a different duration, with higher-quality batteries lasting longer.</li>
<li>Using the flashlight will help you discover things in the dark. For example, if you enter a room without light, you won't be able to see or interact with anything unless the flashlight is on (You need to turn on the flashlight and re-enter the room).</li>
<li>Use the flashlight in battles to gain an accuracy bonus when shooting.</li>
<li>Be cautious: the flashlight's light attracts enemies, increasing the chance of encounters.</li>
<li>Manage your batteries carefully, as the flashlight is essential in rooms and hallways with low lighting.</li>
</ul>
</div>
</div>
<div style="text-align: center; margin-top: 20px;">
<button id="continueButtonFlashlight" class="continue-button">Continue</button>
</div>
</div>
</div>
<<script>>
$(document).on(':passagedisplay', function () {
// Show modals if they exist in the DOM
if ($("#combatTutorialModal").length) {
$("#combatTutorialModal").css("display", "flex");
}
if ($("#flashlightTutorialModal").length) {
$("#flashlightTutorialModal").css("display", "flex");
}
// Remove existing click handlers and add new ones
$(document).off("click", "#continueButtonCombat, #continueButtonFlashlight, .close-button").on("click", "#continueButtonCombat, #continueButtonFlashlight, .close-button", function () {
// Close the specific modal based on the button clicked
if ($(this).is("#continueButtonCombat") || $(this).closest("#combatTutorialModal").length) {
$("#combatTutorialModal").css("display", "none");
}
if ($(this).is("#continueButtonFlashlight") || $(this).closest("#flashlightTutorialModal").length) {
$("#flashlightTutorialModal").css("display", "none");
}
});
});
<</script>>
<<timed 300ms>>
<<script>>
playSoundDirect('button.mp3');
<</script>>
<</timed>>
<</if>>
<style>
p {
text-align: center;
color: #e9e9e9;
}
b, strong {
font-weight: 700;
color: #d3bd7b;
}
.modal {
position: fixed;
z-index: 99999999;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0, 0, 0, 0.8);
display: flex;
justify-content: center;
align-items: center;
margin: 0;
padding: 0;
}
.modal-content {
background: rgba(20, 20, 20, 0.9);
border: 3px solid #634d23;
border-radius: 5px;
padding: 20px;
max-width: 600px;
max-height: 80vh;
overflow-y: auto;
color: #d9c27e;
font-family: 'Trajan Pro', 'Times New Roman', serif;
}
.modal-content h2 {
text-align: center;
color: #ffcc00;
position: relative;
top: -2em;
margin-bottom: -2em;
}
.close-button {
color: #ffcc00;
float: right;
font-size: 28px;
font-weight: bold;
cursor: pointer;
position: relative;
top: -1.7em;
}
.modal-section {
display: flex;
flex-wrap: wrap;
}
.modal-column {
flex: 1;
min-width: 290px;
padding: 38px;
margin-bottom: -5em;
margin-top: -3em;
color: #e9e9e9;
}
.modal-content ul {
list-style-type: disc;
padding-left: 20px;
line-height: 1.6;
}
.continue-button {
padding: 10px 20px;
background-color: #3e3423;
color: #d9c27e;
border: 1px solid #634d23;
border-radius: 3px;
cursor: pointer;
font-family: 'Trajan Pro', 'Times New Roman', serif;
font-size: 16px;
transition: all 0.2s;
text-shadow: 1px 1px 1px #000;
}
.continue-button:hover {
background-color: #3e3423;
}
</style>
<<script>>
UIAnimations.showLantern();
<</script>>
<<script>>
UIAnimations.showBatteryQuickslot();
<</script>>
<<dialogue "" "You push forward and slam straight into the collapse: a brutal wall of shattered concrete and twisted rebar that completely seals the hallway to Floor 5. Among the rubble hangs a rusted, crooked sign: “FLOOR 5,” barely legible in faded green letters. Flaking paint sticks to your hands in damp strips, the air reeks of old piss and black mold. Not a single gap. No way through." "description">>
<<horizontalStart>>
<<addDialogue"" "[[Stairs|HospitalStairsF5]]">>
<<horizontalEnd>>